Guess the Number Repeat

Peter Otten __peter__ at web.de
Thu Apr 25 05:22:24 EDT 2013


eschneider92 at comcast.net wrote:

> How do I make the following program play the 'guess the number game'
> twice?
> 
> import random
> guessesTaken = 0
> print('Hello! What is your name?')
> myName = input()
> number = random.randint(1, 20)
> print('Well, ' + myName + ', I am thinking of a number between 1 and 20.')
> while guessesTaken < 6:
>     print('Take a guess.')
>     guess = input()
>     guess = int(guess)
>     print('You have ' + str(5 - guessesTaken) + ' guesses left.')
>     guessesTaken = guessesTaken + 1
>     if guess < number:
>         print('Your guess is too low.')
>     if guess > number:
>         print('Your guess is too high.')
>     if guess == number:
>         break
> if guess == number:
>     guessesTaken = str(guessesTaken)
>     print('Good job, ' + myName + '! You guessed my number in ' +
>     guessesTaken + ' guesses!')
> if guess != number:
>     number = str(number)
>     print('Nope. The number I was thinking of was ' + number)


If you put everything needed to guess once into a function like in the 
following example. Once you have reorganised

#first version -- flat
guess = int(input("guess my number: "))
if guess == 42:
     print("congrats")
else:
     print("sorry, you're wrong")

into

#second version -- using a function
def guess_number():
    guess = int(input("guess my number: "))
    if guess == 42:
         print("congrats")
    else:
         print("sorry, you're wrong")

guess_number()

you can easily modify the script to invoke the guess_number() function 
inside a loop:

#third version -- calling the function from within a loop
def guess_number():
    guess = int(input("guess my number: "))
    if guess == 42:
         print("congrats")
    else:
         print("sorry, you're wrong")

for i in range(2):
    print("round", i+1)
    guess_number()







More information about the Python-list mailing list