Why I don't get zero option when I apply even/odd check?

When I apply even, odd, and zero checking on a list of numbers, it works well, but for zero I get EVEN Number instead of Zero Number. Where is my mistake?

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()) 

The results:

[ 'ODD Number', 'EVEN Number', 'ODD Number', 'EVEN Number', 'ODD Number', 'EVEN Number', 'ODD Number', 'EVEN Number', 'ODD Number', 'EVEN Number' ] 
1

4 Answers

0 is an even number. If you want special handling for that case, put it first in your if/elif/else chain

0

i % 2 is either 0, or not 0, so the else block will never be executed.

if i % 2 == 0: x.append('EVEN Number') elif i % 2 != 0: x.append('ODD Number') # Unreachable code below else: x.append('Zero Number') 

If you want something to be added to x when i is 0 you could do:

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

your problem lies in the fact that 0 modulus 2, or 0 % 2 = 0. A working example would be

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()) 

Result:

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

The main thing in this is that the code is executed line by line so if you enter the

a = int(input("Enter the first Number :"))

if a == 0:

print(a, "Entered number is zero")

elif a % 2 == 0:

print(a, "is even number") 

elif a % 2 != 0:

print(a, "is zero") 

else:

print("Placed") 

a == 0 in if statement then its shows that it is zero.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like