Python Python Basics (2015) Letter Game App Even or Odd Loop

Hello everyone, what am i doing wrong here?


Alright, last step but it's a big one.

Make a while loop that runs until start is falsey.

Inside the loop, use random.randint(1, 99) to get a random number between 1 and 99.

If that random number is even (use even_odd to find out), print "{} is even", putting the random number in the hole. Otherwise, print "{} is odd", again using the random number.

Finally, decrement start by 1.

I know it's a lot, but I know you can do it!
import random
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
start = 5
while True:
    num = random.randint(1, 99)
    if num/2 == even_odd():
        print("{} is even".format(num))
        print("{} is odd".format(num))
    start- = 1

2 Answers

Chris Freeman
Chris Freeman
Treehouse Moderator 59,836 Points

You're close. Four errors to fix:

  • typo in last line. Should be -=
  • while True causes infinite loop. Use start > 0 or the truthiness of simply start
  • if condition statement needs argument for function call. Use num
  • since function return Boolean value no need to compare to nun/2

Post back if you need more help. Good luck!!!

Well, thanks the pointers are quite elaborate, i made all four corrections but i'm still getting the "task 1 is nolonger passing" error.

Chris Freeman
Chris Freeman
Treehouse Moderator 59,836 Points

This usually means a syntax error has been introduced.