#python #python-2.7
#python #python-2.7
Вопрос:
Я только начал использовать Python, поэтому, пожалуйста, извините, насколько плох мой код!
Итак, компьютер играет в игру сам с собой, где он угадал число от 0 до 100 (target), и он пытается угадать, каким было это число, но он может угадать только путем перечисления, т.Е. 1,2,3 и т.д. (я знаю, что это не лучший способ угадать, но это метод, который меня попросили показать)
Это мой код…
print "Let's play a game."
print "I'm going to guess a number between 0 and 100. What is it?" #guess by enumeration
from random import randint
target = randint(0, 100)
print "This is the target number,", target
count=0
while True:
guess=0
guess =1
count =1
print guess
if guess == target:
print ("Well done, you got it! It took you", count, "attempts.")
break
else:
print "You didn't get it that time, try again."
Я получаю сообщение об ошибке, когда я вставляю это. Я думаю, что есть проблема с циклом и получением цели и предположения, равных друг другу.
Это также первый вопрос, который я задал, поэтому прошу прощения, если вопросы должны быть представлены не так. Я был бы признателен за любую помощь 🙂
Комментарии:
1.
guess
устанавливается равным нулю внутри цикла: большую часть времени вы будете получать бесконечные циклы, если target не равен 1. и если оно равно 0, вы его тоже никогда не достигнете…2.
import
Строка должна быть размещена в самом начале вашего кода.3. Ошибка, которую вы получаете, заключается в том, что у вас есть код между
if
иelse
. Между ними ничего не может быть
Ответ №1:
Поместите guess = 0
перед своим for
циклом: вы guess
сбрасываете на каждой итерации. Кроме того, count
и guess
делать то же самое, вы можете просто заменить один из них другим. Наконец, break
неверный отступ, он должен быть на том же уровне, что и все остальное в этом if
утверждении.
Ответ №2:
gess
всегда равно 1
в цикле while, чтобы решить его, просто переместитесь guess=0
наружу:
...
guess = 0
while True:
guess =1
....