输入任意长度的数字并将它们分别拆分为一个字符
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
我学习 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