如何修复代码中的"SyntaxError: Generator expression must be parenthesize"?



我想写一个程序,用一个数字作为输入来求平方和。如果我给我的代码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

您不需要使用map

sum(i**2 for i in range(x + 1))

就像Guy提到的那样,如果你只是在求累积和,那么下面的代码块就足够了

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)

相关内容

最新更新