Python 为什么我不';当我应用偶数/奇数检查时,是否无法获得零选项?

Python 为什么我不';当我应用偶数/奇数检查时,是否无法获得零选项?,python,list,Python,List,当我在一个数字列表上应用偶数、奇数和零检查时,效果很好,但对于零我得到的是偶数,而不是零数。我的错在哪里 class COPY: def __init__(self, number): self.n = number def even_odd_zero(self): x = [] for i in self.n: if i % 2 == 0: x.append('EVEN N

当我在一个数字列表上应用
偶数
奇数
检查时,效果很好,但对于
我得到的是
偶数
,而不是
零数
。我的错在哪里

class COPY:
    def __init__(self, number):
        self.n = number

    def even_odd_zero(self):
        x = []
        for i in self.n:
            if i % 2 == 0:
                x.append('EVEN Number')
            elif i % 2 != 0:
                x.append('ODD Number')
            else:
                x.append('Zero Number')

        return x



nnn = COPY([1,2,3,4,5,6,7,8,9,0])
print(nnn.even_odd_zero())
结果是:

[
“奇数”,
“偶数”,
“奇数”,
“偶数”,
“奇数”,
“偶数”,
“奇数”,
“偶数”,
“奇数”,
“偶数”
]

i%2
要么是
0
,要么不是
0
,因此将永远不会执行
else

if i % 2 == 0:
    x.append('EVEN Number')
elif i % 2 != 0:
    x.append('ODD Number')
# Unreachable code below
else:
    x.append('Zero Number')
如果您希望在
i
0
时将某些内容添加到
x
,您可以执行以下操作:

if i == 0:
    x.append('Zero Number')
elif i % 2 == 0:
    x.append('EVEN Number')
elif i % 2 != 0:
    x.append('ODD Number')

0是偶数。如果您希望对该情况进行特殊处理,请首先将其放入
If/elif/else
链中您的问题在于0模2或0%2=0。 一个有效的例子是

class COPY:
    def __init__(self, number):
        self.n = number

    def even_odd_zero(self):
        x=[]
        for i in self.n:
            # check if i is zero
            if i == 0:
                x.append("Zero Number")
            elif i % 2 == 0:
                x.append("Even Number")
            elif i% 2 != 0:
                x.append("Odd Number")
        return x
numberList = COPY([0,1,2,3,4,5,6,7,8,9])
print(numberList.even_odd_zero())
结果:

['Zero Number',
 'Odd Number',
 'Even Number',
 'Odd Number',
 'Even Number',
 'Odd Number',
 'Even Number',
 'Odd Number',
 'Even Number',
 'Odd Number']

什么是
0%2
?非常感谢,亲爱的。