拆分命令没有分隔符

时间:2016-01-13 14:51:46

标签: python split sum

我想制作一个程序,将3位数字加在一起,但我不能让python在不输入分隔符的情况下运行拆分命令。任何帮助将不胜感激!

a, b, c = input("x=").split("")
a, b, c, = int(a), int(b), int(c)
print(a+b+c)

5 个答案:

答案 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)