我想编写一个程序来查找以数字为输入的平方和。如果我给我的代码5,它应该返回(0 ^ 2 + 1 ^ 2 + 2 ^ 2 + 3 ^ 2 + 4 ^ 2 + 5 ^ 2 = 55)。
sum(list(map(lambda x:i**2 for i in range(x+1),5)))
但是我有这样的错误。
sum(list(map(lambda x:i**2 for i in range(x+1),55)))
^
SyntaxError: Generator expression must be parenthesized
答案 0 :(得分:0)
您不需要使用map
sum(i**2 for i in range(x + 1))
答案 1 :(得分:0)
就像盖伊提到的那样,如果您只是在累积总和之后,那么下面的代码块就足够了
sum(i**2 for i in range(x+1))
map
函数从传入的表达式/迭代器返回迭代器。因此,可以说,如果要迭代从0..5开始的数字平方,则跟随将返回0、1、4、9、16,并可在for loop
result_iterator= map(lambda x: x**2, range(5))
for i in result_iterator:
print(i)