Хотя циклы здесь, вероятно, лучший способ сделать это, вот как вы можете реализовать их рекурсивно с минимальными изменениями в вашем коде:
def guessingGame(n=None):
if n is None:
import random
n = random.randint(1, 10)
input = raw_input("Guess what integer I'm thinking of.")
if int(input) == n:
print "Correct!"
elif int(input) < n:
print "Too low."
guessingGame(n)
elif int(input) > n:
print "Too high."
guessingGame(n)
else:
print "Huh?"
guessingGame(n)
Предоставляя необязательный параметр для guessingGame()
, вы можете получить желаемое поведение. Если параметр не указан, то это начальный вызов, и вам нужно случайным образом выбрать n
, в любое время после того, как текущий n
будет передан в вызов, поэтому вы не создадите новый.
Обратите внимание, что вызов random()
был заменен на randint()
, поскольку random()
возвращает число с плавающей точкой от 0 до 1, и ваш код выглядит как ожидаемое и целое.