用python编写求和程序

用python编写求和程序,python,Python,我正在用Python编写一个程序来计算1-100之间的数字平方和。 我试过用这个 total = sum(int [(el**2) for el in range(1, 101)]) 我收到一个错误,说明语法不正确。这可以: sum([int(el**2) for el in range(1, 101)]) 请注意,int()在[…]列表中 或更简单: sum(int(el**2) for el in range(1, 101)) 因为您不需要为sum()创建完整的列表 更好的是,完全放弃

我正在用Python编写一个程序来计算1-100之间的数字平方和。 我试过用这个

total = sum(int [(el**2) for el in range(1, 101)])
我收到一个错误,说明语法不正确。

这可以:

sum([int(el**2) for el in range(1, 101)])
请注意,
int()
[…]列表中

或更简单:

sum(int(el**2) for el in range(1, 101))
因为您不需要为
sum()
创建完整的列表

更好的是,完全放弃
int()
调用,整数的指数仍然是整数:

sum(el ** 2 for el in range(1, 101))
演示:


移除
int

total = sum([(el**2) for el in range(1, 101)])
>>> sum([el**2 for el in range(1, 101)])
338350

您不需要括号或调用
int

total = sum([(el**2) for el in range(1, 101)])
>>> sum([el**2 for el in range(1, 101)])
338350
您甚至不需要括号:

>>> sum(el**2 for el in range(1, 101))
338350
你也可以:


错误解释-整型转换是在整个列表上设置的,列表不能转换为整型。在这种情况下不需要转换,因为所有变量都是整数,但如果您确实想使用它。在总和或总和的每一部分(int(el**2))上使用它。

所有答案都很好。作为旁注:

def sum_of_squares(end):
    return end * (end+1) * (2*end + 1) / 6

total = sum_of_squares(100)
该公式是更一般的Faulhaber公式的特例:


@falsetru谢谢你的回答。[]和(),两者之间的区别是什么?[el2代表范围内的el(1101)]返回一个列表,而其(el2代表范围内的el(1101))返回一个生成器。计算应该是
total=sum\u of_squares(100)
@InbarRose Yep,修复了这个问题。您还可以使用数学:touché