【发布时间】:2020-10-05 18:42:55
【问题描述】:
我是初学者,使用 python 3.6,IDE Spyder(Anaconda)。 我正在尝试使用 for 循环编写前 10 个奇数并添加它们。 以下是代码:
输入
x = list(range(0,10))
print(x)
a = []
for i in x:
y = 2*i + 1
a.append(str(y))
print(a)
输出:
['1', '3', '5', '7', '9', '11', '13', '15', '17', '19']
但如果我使用print(sum(a)) 语法:
输入:
x = list(range(0,10))
print(x)
a = []
for i in x:
y = 2*i + 1
a.append(str(y))
print(a)
print(sum(a))
输出:
TypeError: unsupported operand type(s) for +: 'int' and 'str'
如何使用 sum() 获得列出的所有奇数的总和?
【问题讨论】:
-
如果您以后想将它们视为数字,请不要将数字 作为字符串 附加到列表中。
-
a.append(str(y))应该是a.append(y),或者更好的是,只需先执行x = list(range(0,10)),然后执行sum(x),两行就完成了。 -
@Torxed 这段代码不仅仅是
list(range(0, 10))...尽管它可以轻松地在两行中完成。 -
@deceze 抱歉,忘记了
2*i + 1,这需要使用enumerate()来获取索引并进行列表理解。想法仍然认为主要问题是str(y)tho :)
标签: python python-3.x list