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

MADE A COUPLE OF CORRECTIONS. STILL TELLING ME TASK ONE IS NO LONGER PASSING.

HERE IS THE ORIGINAL QUESTION

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!

even.py
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 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

this should work

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

def start(): start = 5

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

1 Answer

Robert Ionut Muraru
Robert Ionut Muraru
5,361 Points

The below syntax is not correct:

start -+ = 1

You want to use:

start -= 1

You need no spaces between minus and equal and the plus sign should not be there. You will then have to check the logic in the if / else statements, as it is printing the opposite of what is required:

  if even_odd(num) == 0:
      print("{} is even".format(num))
  • the above is the same as saying to python: if even_odd() is False...print out that the number is even. Remember that 0 is falsey. The even_odd() function checks if the number is even and returns True if it is even.