输入任意长度的数字并将它们分别拆分为一个字符

Taking an input of any length of number and splitting them one character each

我学习 python 已经几周了,我正在尝试编写一个脚本,该脚本接受任意长度的数字输入并将它们拆分为一个字符的长度。像这样: 输入:

123456

输出:

1           2            3            4            5            6

我需要在不使用字符串的情况下执行此操作,最好使用 divmod... 像这样:

 s = int(input("enter numbers you want to split:"))
     while s > 0:
         s, remainder = divmod(s, 10)

我不确定如何正确设置间距。

感谢您的帮助。

尝试 mod:

while x > 0:
   x = input
   y = x % 10
   //add y to list of numbers
   x = (int) x / 10

例如如果 x 是 123:

123 % 10 是 3 -> 你存 3。 123 / 10 的整数值为 12。 然后 12 % 10 是 2 -> 你存 2 12 / 10 的整数为 1。 1 % 10 = 1 -> 你存 1

现在你有了所有的数字。您可以在此之后反转列表以获得您想要的列表。

以下使用余数怎么办:

s = 123456
output = []
while s > 0:
    s, r = divmod(s, 10)
    output.append(r)

fmt='{:<12d}'*len(output)
print fmt.format(*output[::-1])

输出:

1           2           3           4           5           6

这还使用了一些其他有用的 Python 东西:数字列表可以反转 (output[::-1]) 并格式化为 12 个字符的字段,数字在左侧对齐 ({:<12d}).

因为你优先使用divmod,你可以这样做:

lst=[]
while s>0:
    s, remainder = divmod(s, 10)
    lst.append(remainder)

for i in reversed(lst):
    print i,

输出:

enter numbers you want to split:123456
1 2 3 4 5 6

您可以使用 join() 来实现。如果您使用 python 2.*

则转换为字符串
s = input("enter numbers you want to split:")
s= str(s)
digitlist=list(s)
print " ".join(digitlist)

万一您需要整数,就去做吧。

intDigitlist=map(int,digitlist)

您可以遍历 Python 字符串并使用 String.join() 获得结果:

>>>'  '.join(str(input("Enter numbers you want to split: ")))
Enter numbers you want to split: 12345
1  2  3  4  5