用python编写求和程序
我正在用Python编写一个程序来计算1-100之间的数字平方和。 我试过用这个用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()创建完整的列表 更好的是,完全放弃
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é