它说Sum += 1
语法无效。如果我的代码不正确,那么计算列表中有多少偶数的更好的方法是什么?
def countEvens(listOfInts):
'''
- Returns an integer value representing the number of even numbers that
exist in listOfInts.
- Return 0 if listOfInts is not a list type or if no even number exists
in listOfInts.
- Note: elements in listOfInts can contain any data type.
'''
Sum = 0
for x in listOfInts:
if x % 2 == 0:
return Sum += 1
if type(listOfInts) != list:
return 0
答案 0 :(得分:2)
在Python中,您无法return
分配。 Sum += 1
是一项任务,它会将Sum + 1
分配给Sum
。
实际上return
不仅仅是一个SyntaxError,它也是错误的(在逻辑意义上),所以只需删除它:
Sum = 0
for x in listOfInts:
if x % 2 == 0:
Sum += 1
return Sum
或者,您可以将sum
与生成器一起使用:
return sum(1 for value in listOfInts if value % 2 == 0)
答案 1 :(得分:0)
语法错误来自此行,正如您所说
return Sum += 1
因为(Sum + = 1)不是从函数返回的有效值。这是一个单独的陈述
让代码尽可能接近,试试这个
Sum += 1
return Sum
或者更简单地说
return Sum+1
关于更加pythonic的方法
def countEvens(listOfInts):
return sum( x % 2 == 0 for x in listOfInts )
完成整个事情