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 Python Basics (2015) Letter Game App Even or Odd Loop

Luca Tardito
seal-mask
.a{fill-rule:evenodd;}techdegree seal-36
Luca Tardito
Front End Web Development Techdegree Graduate 17,602 Points

I don't understand why my code doesn't work, I've already checked the syntax many times.

It could be a problem of the system, when try to check my work the system says: Oops! it looks like Task1.....

even.py
import random
start = 5
while start:
    number = random.randint(1,99)
    if even_odd(number) is True:
        print("{} is even".format(number))
    else:
        print("{} is odd".format(number))
    start += 1
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

Syntax is OK, but logic is not. :)

You have infinite loop, because you increase start

1 Answer

Marcin Lubke
Marcin Lubke
13,253 Points

There are two problems with your code.

First... You have to repeat the loop until "start" is falsey, so you have to decrement it's value, not increment. You should put:

start -= 1

at the end of your loop.

And the second one is actually a little harder to find, if you don't try to run this code on your own and use only the challenge page. Inside your loop, you call "even_odd" function but the definition of this function is after the loop itself, so your program simply doesn't know this function. You have to move the declaration of your function to the beginning of the program (but after import random).