Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Python

Why does it say there is something wrong with my print functions?

When using the below code during the Even or Odd Loop code challenge I am getting an error that says " Bummer! Some or all of your prints are wrong." I have ran this code and it works as I would expect it to. Any ideas?

import random

start = 5

def even_odd(num):
    # If % 2 is 0, the number is even.
    # Since 0 is falsey, we have to invert it with not.
    return not num % 2

while start > 0:
    num = random.randint(1,99)
    if even_odd(num) == 0:
        print("{} is even".format(num))
    else:
        print("{} is odd".format(num))
    start -= 1

2 Answers

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Here's a hint! :smiley: The even_odd function isn't returning a number... it's returning a true or false. And while 0 is "falsey", it's not explicitly equal to false. That being said, we want the True that's returned to indicate a number that is evenly divisible by 2. Try rewriting your if statement to reflect this :sparkles:

Thanks Jennifer. That makes sense. Changed my if statement to the following and now it is ALL good.

import random

start = 5

def even_odd(num):
    # If % 2 is 0, the number is even.
    # Since 0 is falsey, we have to invert it with not.
    return not num % 2

while start > 0:
    num = random.randint(1,99)
    if even_odd(num) == True:
        print("{} is even".format(num))
    else:
        print("{} is odd".format(num))
    start -= 1