计算给定列表中的偶数

Counting even numbers in a given list

我正在尝试计算给定列表中的数字并且只计算偶数。我一直收到语法错误,但不知道问题出在哪里。

x = [1,5,4,7,2,10,8,19,27,26,54,80]

def count_evens(g_list):
    y = 0
    for i in g_list:
        if g_list[i] % 2 = 0:
            y = y + 1
        else:
            y = y + 0
    print(str(y))   

count_evens(x)

语法错误来自if g_list[i] % 2 = 0:我的语法有什么问题?

谢谢!

g_list[i] % 2 = 0 是一个赋值语句(而且是非法的,因为你 "Can't assign to an operator")。 if 语句(仅表达式)中不允许赋值语句。

你想要 g_list[i] % 2 == 0 这是一个逻辑表达式。

syntax error

你想比较所以使用 == 而不是 = (单个相等用于赋值)

if g_list[i] % 2 == 0:

index is out of range

要遍历列表的所有元素,可以使用这种形式:

for i in g_list:
    if i % 2 == 0:   # No need for g_list[i]
                     # in your for loop,
                     # i is an element from the list, not an index