for code in range(1,11) :
a = code**2
b = sum(a)
print(b)
我试图找到前10个数字的平方和。
1 ^ 2 + 2 ^ 2 + ... + 10 ^ 2 = 385
但我的程序不会允许行b = sum(a)
。你能帮我解决这个问题吗?
答案 0 :(得分:2)
sum()
不能像这样工作。此函数接受可迭代并计算每个元素的总和。
这就是为什么你必须在for
内设置sum()
循环 的原因,这称为"生成器表达式"。
b = sum(code**2 for code in range(1,11))
答案 1 :(得分:0)
sum函数将序列作为参数。如果你使用它,你不需要循环。另外,python中的取幂运算符是**而不是^,所以你可以说
<%@ page import="" %>
答案 2 :(得分:0)
要在for循环中执行此操作,您需要每次通过for循环添加到b变量,如下所示:
b = 0
for code in range(1,11):
a = code**2
b = b + a
print(b)
您也可以使用python的列表推导在一行中执行此操作,并跳过for循环:
b = sum([a**2 for a in range(1, 11)])
print(b)