如何使它准确检测一个数字中有多少个数字?

我正在尝试让我的代码在其自己的行上分别显示每个数字,并且这样做。但是,我在结尾处遇到错误,因此我想准确地检测出数字中有多少个数字。我很难找到一个不是len()的解决方案,因为对于这个特定程序,我不应该使用它。

这是我的代码:

number = int(input("Enter a positive integer: "))
number = str(number)
digits = 0
while True:
    print(number[digits])
    digits += 1
wangzywangzy 回答:如何使它准确检测一个数字中有多少个数字?

您可以创建一个计数器,并且while循环应如下所示:

num = int(input("enter num"
result = 0

while num > 10:
  num = num // 10
  result += 1

result += 1


print(result)
,

由于您正在运行无限while循环,因此会引发错误。代替。

number = int(input("Enter a positive integer: "))
number = str(number)
digits = 0
for i in number:
    print(i)
    digits+=1
,

您还可以使用log10(以10为底的对数)功能:

import math
number = int(input("Enter a positive integer: "))
print(1 + int(math.log10(number)))
,

仅通过打印与换行符分隔的字符串元素即可解决问题,而无需尝试查找字符串中有多少个元素:

number = input("Enter a positive integer: ")
print('\n'.join(number))
,

出现错误的原因是,当digits获得数字长度的值时说l,则number[l]不存在(索引开始从0开始)

number = input("Enter a positive integer: ")) 

# type(number) is <class 'str'> you don't have to convert to int and reconvert to string

# since <class 'str'> implements iterable you could go like this ..

digits = 0 

for digit in number:

     print(digit)  # digit is still a str here

     digits += 1
本文链接:https://www.f2er.com/3168794.html

大家都在问