这是我的代码:
import math
print("Hey, lets solve Task 4 :)")
number1 = input("How many digits do you want to look at? ")
number2 = input("What would you like the digits to add up to? ")
if number1 == 1:
cow = range(0,10)
elif number1 == 2:
cow = range(10,100)
elif number1 == 3:
cow = range(100,1000)
elif number1 == 4:
cow = range(1000,10000)
elif number1 == 5:
cow = range(10000,100000)
elif number1 == 6:
cow = range(100000,1000000)
elif number1 == 7:
cow = range(1000000,10000000)
elif number1 == 8:
cow = range(10000000,100000000)
elif number1 == 9:
cow = range(100000000,1000000000)
elif number1 == 10:
cow = range(1000000000,10000000000)
number3 = cow[-1] + 1
n = 0
while n < number3:
number4 = list(cow[n])
n += 1
我正在寻找一个循环,以便对于列表中的每个元素,它将被分解成它的每个字符。例如,假设数字 137
在列表中,那么它将变成 [1,3,7]
。然后我想将这些数字加在一起(我还没有开始,但我知道如何做)。
但是,我不断收到此错误消息:
TypeError: 'int' object is not iterable
我究竟做错了什么?
原文由 user2908001 发布,翻译遵循 CC BY-SA 4.0 许可协议
您的问题出在这一行:
它尝试取
cow[n]
,它返回一个整数,并使它成为一个列表。这不起作用,如下所示:也许您打算将
cow[n]
放入 列表中:请参阅下面的演示:
另外,我想解决两件事:
:
。input
被认为是非常危险的,因为它将其输入评估为真正的 Python 代码。最好在这里使用raw_input
,然后使用int
将输入转换为整数。要拆分数字然后根据需要添加它们,我首先将数字设为字符串。然后,由于字符串是可迭代的,您可以使用
sum
: