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
?非常感谢,亲爱的。