Похоже, что первой проблемой будет бесконечный цикл, поскольку условие, которое вы проверяете на каждой итерации, всегда будет соответствовать приведенному выше коду. Когда вы зацикливаетесь, вы должны убедиться, что изменили что-то, что приблизит зацикливание к этому состоянию. Для начала ваш код должен выглядеть так:
loop = 1
while loop == 1:
foo = 1
guessfoo = input('Guess my number: ')
if foo == guessfoo:
print('Well done, You guessed it!')
loop = 0
if foo != guessfoo:
print('Oh no, try again')
Это заставит цикл завершиться, если число действительно угадано.
Следующая проблема состоит в том, что input
возвращает строку, поэтому проверка, чтобы увидеть, равно ли введенное число ожидаемому числу, всегда будет неудачной. В python используйте функцию int()
для преобразования строки в число, чтобы строка выглядела следующим образом:
guessfoo = int(input('Guess my number: '))
В этот момент у вас должен быть прилично работающий цикл. Тем не менее, есть несколько вещей, которые вы можете сделать, чтобы сделать ваш код проще. Вот несколько советов, начиная с самых простых настроек и переходя к более чистому коду.
Первым шагом может быть использование if...else
, чтобы убедиться, что выполняется только одно условие, и вам нужно только один раз проверить значение foo
. Если условие истинно, выполняется первая ветвь; в случае неудачи выполнение переходит к блоку else
.
loop = 1
while loop == 1:
foo = 1
guessfoo = int(input('Guess my number: '))
if foo == guessfoo:
print('Well done, You guessed it!')
loop = 0
else:
print('Oh no, try again')
Это работает, но мы также можем переместить проверку правильности результата в условии цикла. Таким образом, программа зацикливается только до тех пор, пока не отобразится число:
foo = 1
guessfoo = 0
while foo != guessfoo:
guessfoo = int( input( 'Guess my number: ' )
if guessfoo != foo:
print( 'Oh no, try again' )
print( 'Well done, You guessed it!' )
Теперь сообщение об успехе будет отображаться только при foo == guessfoo
. Этот цикл немного понятнее и проще.
Как новичок, вы выбрали отличное место, чтобы обратиться за помощью! Добро пожаловать в StackOverflow!