Hello everyone! I am currently stuck on the Number Guess part at the end of Unit 4. I have written all of the code to the best of my ability, and it runs, but it runs improperly. Here is my code: #imported to make 'random dice rolls' possible from random import randint #imported to simluate the time that it takes to roll dice from time import sleep def get_user_guess(): user_guess = int(raw_input("What is your guess?: ")) return get_user_guess() def roll_dice(number_of_sides): first_roll = randint(1, number_of_sides) second_roll = randint(1, number_of_sides) max_val = number_of_sides * 2 print "The Max value is: " + str(max_val) sleep(1) user_guess = get_user_guess() if user_guess > max_val: print "The number that you have chosen is invalid. Program now exiting..." return else: print "Rolling..." sleep(2) print "The first value is: %d" % (first_roll) sleep(1) print str("The second value is: %d" % (second_roll)) sleep(1) total_roll = first_roll + second_roll print total_roll print "Result..." sleep(1) if user_guess > total_roll: print "Congradulations! You've won!" else: print "You lose." roll_dice(6) When I run this code, the console tells me that the max value is "12", and then asks "What is your guess?", but basically, no matter how many numbers I put in, it just keeps asking the same "What is your guess?" Even if I put a number greater than 12, it still asks me again. If I don't put a number in, or if I put a letter in, then the program crashes. Any advice? Thank you!
you created a recursive function call:
def get_user_guess(): user_guess = int(raw_input("What is your guess?: ")) return get_user_guess()
it will endless prompt the user for a number. Are you sure you didn't intent to return user_guess?
Ohhh. That fixed that problem. Thank you very much!