Вот что вам нужно исправить:
- Ваш отступы повсюду.
- Вы пытались использовать
counter
как часть своего состояния в своем цикле, прежде чем вы даже дали ему значение.
- Потому что вы создали
n1
и n2
внутри тела вашего цикла while, после каждой догадки n1
и n2
будут созданы снова и будут присвоены разные значения. Я не уверен, если вы хотите, чтобы это произошло, но если вы это сделали, вы можете просто переместить эти 2 строки обратно в цикл.
- Вы не смогли вырваться из своего цикла, если пользователь догадался о правильном ответе. Вот почему я добавил
break
. Это закончит цикл успешным ответом. Кроме того, если ответ неверен, вам не нужно pass
. Цикл будет продолжаться до тех пор, пока он не получит правильный ответ или не достигнет значения counter
.
В любом случае, это фиксированная/рабочая версия вашего кода.
import random
def game(n):
counter = 0
n1 = random.randrange(1,10)
n2 = random.randrange(1,10)
while counter < n:
# move creation of n1, n2 here if you want #'s to change after every guess
print ('{} + {}'.format(n1, n2))
answer = input("Enter answer: ")
if answer == int(n1 + n2):
print("Correct.")
break
else:
print("Incorrect.")
counter += 1
Вы должны действительно прочитать о некоторых основных темах Python, такие как отступы, while
петель и переменных.
Надеюсь, это поможет!
И, наконец, вот 2 испытания. Один из них я успешно угадываю правильный ответ, а другой догадываюсь, пока счетчик не достигнут.
4 + 9
Enter answer: 3
Incorrect.
4 + 9
Enter answer: 2
Incorrect.
4 + 9
Enter answer: 1
Incorrect.
9 + 8
Enter answer: 17
Correct.
В обоих этих примерах я назвал функцию с помощью game(3)
.
Пожалуйста, проверьте отступ. Строки под 'while' не имеют отступов. – timrau
В соответствии с кодом, который вы указали, у вас есть проблемы с отступом, и 'counter' также не определяется. Я удивлен, что первая ошибка, которую вы получаете на вашей стороне, - это заявление печати. – idjaw
Вам нужно работать над вашим отступом. Убедитесь, что он совпадает с кодом, который вы используете. Это звучит как проблема с областью, и если отступы кода, который вы публикуете, не соответствуют вашему фактическому коду, это сложно сделать, потому что отступы определяют область действия в Python. Также обратите внимание, что в вашем коде также есть логические ошибки. –