Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将大量数字切分为数字,然后在Python中添加它们_Python - Fatal编程技术网

将大量数字切分为数字,然后在Python中添加它们

将大量数字切分为数字,然后在Python中添加它们,python,Python,我正在尝试制作一个程序,在这个程序中,无论用户输入什么数字,组成该数字的数字都会被添加,如果它们的总和为10,那么它是好的,如果不是,那么它们就做错了。我想这应该很简单。虽然在我把这些数字分开后,我很难把它们加在一起。你知道我要做什么吗 这是我的尝试: num=raw_input("input number?") num.split() = a if sum(a) == 10: print num + "is a valid number." else: print num +

我正在尝试制作一个程序,在这个程序中,无论用户输入什么数字,组成该数字的数字都会被添加,如果它们的总和为10,那么它是好的,如果不是,那么它们就做错了。我想这应该很简单。虽然在我把这些数字分开后,我很难把它们加在一起。你知道我要做什么吗

这是我的尝试:

    num=raw_input("input number?")
num.split() = a
if sum(a) == 10:
  print num + "is a valid number."
else:
  print num + "is invalid!"
谢谢。

split.num()没有任何作用
num.split()。您需要将
num
中的数字字符转换为它们所代表的数字,这可以通过列表理解来实现:

digits = [int(c) for c in num]

然后
sum
该表达式的结果。

如果使用
raw\u input()
提示用户,此函数返回一个字符串(在您的情况下由数字组成),如果需要对其进行计算,则必须先使用
int()
对其进行转换。以下是您的代码的外观:

num = raw_input('input number: ')
if sum(int(i) for i in num) == 10:
    print "OK"
else:
    print "FAILED"

请记住,在
Python2.x
中,有两个函数,
raw\u input()
返回字符串,
input()
返回整数(如果给定其他内容,则返回失败),而在
Python3.x
中,
raw\u input()
函数已被
input()
替换

或者您可以使用
map
功能:

In [1]: a="1234567890"

In [2]: map(int,a)
Out[2]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

In [3]: sum(map(int,a))
Out[3]: 45

map(function,sequence)为序列的每个项调用函数(item),并返回返回值列表。查看此操作,因为
raw\u input
返回一个字符串。

这是一个愚蠢的问题,但您在其中引入了“i”,python如何知道您引用的是输入中的每一个数字?除此之外,非常感谢您的回答,它非常完美,并且对我帮助很大。@rooney:您可以想象,python的阅读已经足够深入,可以看到在
(int(i)代表i in num)
i
中依次是每个值。基本上,它在包含正确值
i
的上下文中多次执行表达式
int(i)
。请记住,您不必在Python中预先声明变量,它会根据需要查找变量,因此列表理解和生成器表达式的语法就是这样。谢谢Fredrik!!!只是出于好奇-有没有其他方法可以通过使用迭代来实现?我想更多地接触它!非常感谢澳大利亚!