问题是获取 'n' 数字并打印由 space 分隔的每个数字。可能是什么问题?

problem was to get 'n' digit number and print each digit separated by a space. What might be the problem?

我尝试了以下代码,但如果位数小于 16,它会给出正确答案。就像我输入 number=111000111000111,它会给出正确答案,但如果 number=111000111000111000,它会给出错误答案.

print("Enter a number of any length")
a=int(input())
b=str(a)
x=len(b)
print(b)
print(x)
for b in b:
     if x<0:
         break
     print(int(a/pow(10,x-1))%10,end=" ")
     x=x-1

正确输出:

Enter a number of any length
111000111000
111000111000
12
1 1 1 0 0 0 1 1 1 0 0 0 

如果位数 > 16,则输出错误:

Enter a number of any length
123456789999900987654321 #input
123456789999900987654321 #converted string
24                       #length of string
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 0 8 2 2 0 6 4 4 6 #output

大约是整数的大小。您可以使用以下代码实现您的目的:

print("Enter a number of any length")
num = input("Enter a number of any length: ")
print("len of input {}".format(len(num)))
print(' '.join(num))

问题在于您使用了 /,这给游戏带来了浮点数的不准确性。使用 // 进行整数除法,您将得到正确的输出。

无论如何,另一种方式:

>>> number = 123456789999900987654321
>>> print(*str(number))
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1

或者,由于您让用户将数字作为字符串输入,因此无需转换为 int 并返回字符串:

>>> print(*input())
123456789999900987654321
1 2 3 4 5 6 7 8 9 9 9 9 9 0 0 9 8 7 6 5 4 3 2 1