2015-10-30 4 views
0

Код работает нормально, но я не могу понять, как полностью перезапустить программу. Я добавлю код в код, и я знаю, что это неправильно, потому что я хочу, чтобы он полностью перезапустился после того, как вы угадали правильный номер, и он отображает «Поздравляю! Вы догадались, мой номер в догадках.Генератор случайных чисел Python

import random 

guesses = 0 
number = random.randint(1, 100) 
print('I am thinking of a number between 1 and 100.') 

while guesses < 100: 
    guess = int(input('Guess? ')) 


    guesses = guesses + 1 

    if guess < number: 
     print('Your guess is too low.') 

    if guess > number: 
     print('Your guess is too high.') 

    if guess == number: 
     continue 

if guess == number: 
    guesses = str(guesses) 
    print('Congratulations! You guessed my number in ' + guesses + '  guesses!') 
+0

Просто положите все это внутри цикла while, пока «True», а затем спросите, хотите продолжить и сломать, если ответ не – gkusner

+0

Спасибо за помощь, это решение будет работать, но я хочу, чтобы программа перезапустилась автоматически. – Aaron

ответ

0

Если вы хотите продолжать гадать и начать игра автоматически, вам нужно сделать рекурсивный вызов:

import random 

def guess_func(): 
    number = random.randint(1, 100) 
    guesses = 0 
    while True: 
     guess = int(raw_input("Enter your guess: ")) 
     if guess < number: 
      print('Your guess is too low.') 
      guesses += 1 

     if guess > number: 
      print('Your guess is too high.') 
      guesses += 1 

     if guess == number: 
      print "Congratulations! You guessed my number in [{}] guesses".format(guesses) 
      print "Let's keep on guessing!" 
      return guess_func() 

guess_func() 
+0

Спасибо за помощь, изменил мой код, чтобы соответствовать этому формату, но я заметил, что если вы не измените догадки в def guess_func до 1, количество догадок в последнем утверждении отключено на единицу. – Aaron

0

так, как это:

while True: 
    guesses = 0 

    while guesses < 100: 
     if guesses == 100: 
      break 
      ... 
     if guess == number: 
      print ... 

    yorn = input "do you want to try again?") 
    if yorn == 'n': 
     break 

так просто обернуть свой код во внешнем время, очевидно, я пропустил много кода

Смежные вопросы