在Python中,如何找到整数中的位数?
当前回答
计算w/o将整数转换为字符串的位数:
x=123
x=abs(x)
i = 0
while x >= 10**i:
i +=1
# i is the number of digits
其他回答
对于子孙后代来说,这无疑是迄今为止解决这个问题最慢的方法:
def num_digits(num, number_of_calls=1):
"Returns the number of digits of an integer num."
if num == 0 or num == -1:
return 1 if number_of_calls == 1 else 0
else:
return 1 + num_digits(num/10, number_of_calls+1)
def digits(n)
count = 0
if n == 0:
return 1
if n < 0:
n *= -1
while (n >= 10**count):
count += 1
n += n%10
return count
print(digits(25)) # Should print 2
print(digits(144)) # Should print 3
print(digits(1000)) # Should print 4
print(digits(0)) # Should print 1
没有导入和str()这样的函数的解决方案
def numlen(num):
result = 1
divider = 10
while num % divider != num:
divider *= 10
result += 1
return result
>>> a=12345
>>> a.__str__().__len__()
5
您可以使用以下解决方案:
n = input("Enter number: ")
print(len(n))
n = int(n)
推荐文章
- 证书验证失败:无法获得本地颁发者证书
- 当使用pip3安装包时,“Python中的ssl模块不可用”
- 无法切换Python与pyenv
- Python if not == vs if !=
- 如何从scikit-learn决策树中提取决策规则?
- 为什么在Mac OS X v10.9 (Mavericks)的终端中apt-get功能不起作用?
- 确定记录是否存在的最快方法
- 将旋转的xtick标签与各自的xtick对齐
- 为什么元组可以包含可变项?
- 如何合并字典的字典?
- 如何创建类属性?
- 不区分大小写的“in”
- 在Python中获取迭代器中的元素个数
- 解析日期字符串并更改格式
- 使用try和。Python中的if