Not that I have encountered any problem with this lesson but I am confused about one particular bit.

In the code below why is it
x%2==0 and not x%2 only?

I didn't understand the reason behind x is divisible by 2 and then the need to put IS EQUAL TO 0 (==0)

Thank you in advance.

def is_even(x):
    if x%2==0:
        return True
        return False.


% is not a /. It is known as a modulo and returns the remainder. If the number is divisible by 2, that means the remainder is 0, correct?

That is why it is x%2 == 0 instead of just x%2. We need to compare it to something for the statement to be either True or False.


you can do without ==0, but then you need to realize that python evaluates 0 as false, and 1 as true


Now, I understand. Thank you.


Thank you. That makes sense.


datfatcat is actually not right, python is capable of validatiing 1 and 0:

if 1:
   print True #will print true
if 0:
   print True
   print False


Ah yes, Python can validate 0 and 1 (0 being False by default and 1 being True). I'll admit that I'm wrong on that part. But in this case, something like this

def is_even(x):
  if x%2:
    return False
    return True

print(is_even(5)) #evaluates to False

will be harder for others to understand. I usually do x%2 == 0 because it's more comprehensible.


yes its harder to understand. But the learner asked about it. If you want to make it really difficult, combine this + ternary operator:

def is_even(x):
    return False if x % 2 else True


Saves lines/bits which is nice. But yeah, that would be more difficult to understand. Interesting, never heard of ternary operator but it can be useful! Thanks.


This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.