我想制作一个程序,将3位数字加在一起,但我不能让python在不输入分隔符的情况下运行拆分命令。任何帮助将不胜感激!
a, b, c = input("x=").split("")
a, b, c, = int(a), int(b), int(c)
print(a+b+c)
答案 0 :(得分:1)
如果输入正好是三个字符,那么这将起作用:
a, b, c = input("x=")
print sum([int(i) for i in [a,b,c]])
虽然有一个更灵活的选择:
user_input = input("x=")
print sum([int(c) for c in user_input])
****请注意,在python 2上,这不起作用,您必须使用raw_input
而不是input
。我假设你正在使用python 3?
答案 1 :(得分:1)
你在找这个吗?
sum(int(c) for c in input("x="))
或者,如果您要从代码中删除split("")
,请运行以下命令:
a, b, c = list(input("x="))
a, b, c, = int(a), int(b), int(c)
print(a+b+c)
答案 2 :(得分:0)
如果输入数字为整数,则需要先将其转换为字符串。等效的空分隔符是将字符串转换为列表。
a, b, c = list(str(input("x=")))
如果您以字符串形式输入,则不需要str
来电。
答案 3 :(得分:0)
您可以将输入分配给一个变量,并使用列表推导将其拆分为数字。然后只需使用sum函数。
number = input("x=")
digits = [int(dig) for dig in number]
print(sum(digits))
或者在一行中:
print(sum([int(digit) for digit in input("x=")]))
答案 4 :(得分:0)
当你提供3个动词a, b, c = input("x=")
时,你必须输入[1,2,3]
之类的数字列表,而不需要将它们分开,它们将分别输入,
但是如果你想要总和所有数字,因为你无法预测将输入多少个数字,你最好将所有值作为字符串然后将它们拆分为整数:
value = str(input("x="))
numSum = 0
for eachvalue in value:
numSum = numSum + int(eachvalue)
print(numSum)
修改强>
此外,如果此人输入类似'sdf2324'
的字符串,您可以通过在代码中添加它来检查输入的内容是否为Integer:
if eachvalue in "1234567890":
所以你最终的代码是:
value = str(input("x="))
numSum = 0
for eachvalue in value:
if eachvalue in "1234567890":
numSum = numSum + int(eachvalue)
print(numSum)