#python #python-3.x
#python #python-3.x
Вопрос:
итак, делаю это для моей статьи по информатике 1-го этапа. следующий код — это то, что я написал atm. Строка 16 (оператор while) выдает синтаксическую ошибку. Книга просит нас
1) предложите пользователю ввести предположение и сохранить значение в переменной «угадай»,
2) если предположение больше, чем печать цели…
3) если предположение ниже цели … распечатать…
4) если предположение совпадает с целью, выведите…
Не уверен, как это исправить. Любая помощь будет принята с благодарностью. Код, как показано ниже.
#Author: Anuj Saluja
#Date: 17 October 2016
import random
goal = random.randint(1,100)
guess = 0
print ("The object of this game is to")
print ("guess a number between 1 and 100")
print()
inputguess = int(input("Please guess the number: ")
while (guess != goal):
if inputguess > goal
print ("Too high, try again.")
if inputguess < goal
print ("Too low, try again.")
if inputguess == goal:
break
if inputguess == goal:
print ("Well done!")
print ("See you later.")
Комментарии:
1. Ваш отступ ужасен и, вероятно, вызывает синтаксическую ошибку.
Ответ №1:
Код запрашивает предположение только один раз перед циклом while. Вам необходимо обновить переменную guess внутри цикла while, повторно запросив ввод.
Ответ №2:
Я думаю, вы ищете это. надеюсь, это сработает.
import random
goal = random.randint(1,100)
guess = 0
print ("The object of this game is to")
print ("guess a number between 1 and 100")
inputguess = int(input("Please guess the number: "))
while True:
if inputguess > goal:
inputguess = int(input("Too high, try again: "))
elif inputguess < goal:
inputguess = int(input("Too low, try again: "))
elif inputguess == goal:
print ("Well done!")
print ("See you later.")
break
Ответ №3:
Поместите эту строку :
inputguess = int(input("Please guess the number: ")
внутри цикла while. Код запрашивает пользовательский ввод только один раз, пользовательский ввод должен быть в цикле.
Ответ №4:
Вы подробно ознакомились со своей трассировкой стека? Очень легко просто просмотреть их, но трассировки стека на самом деле могут предоставить много очень полезной информации. Например, сообщение, вероятно, жалуется на то, что оно ожидало закрывающую скобку. Линия:
inputguess = int(input("Please guess the number: ")
на самом деле должно быть
inputguess = int(input("Please guess the number: "))
Трассировка стека говорит, что ошибка находится в строке 16, потому что именно там интерпретатор понял, что что-то не так. Чаще всего ошибочный код будет находиться в последней строке кода перед строкой, которую он вам выдает.
также, как указывали другие люди, вам нужно поместить оператор ввода в цикл while, чтобы обновить переменную.
Вам также следует подумать о замене символов табуляции на 4 пробела, чтобы они отображались последовательно независимо от того, где вы их читаете. Обычно в текстовом редакторе или IDE будут настройки вкладок, которые вы можете изменить, когда нажмете tab, в нем будет введено 4 пробела. Быстрый поиск в Google по строкам «{текстовый редактор} изменить настройки вкладки» обычно выдает результаты о том, как его изменить, где {текстовый редактор} — это имя используемого вами редактора / IDE.
Вам также следует рассмотреть возможность отступа кода в ваших операторах if, поскольку это улучшает читаемость
Ответ №5:
Так что я попросил кого-нибудь помочь мне в irl, и это прекрасно работает для всех, кто заинтересован. Спасибо всем за помощь. 🙂 Ценю это.
goal = random.randint(1,100)
guess = 0
print ("The object of this game is to")
print ("guess a number between 1 and 100")
print()
while guess != goal:
guess = int(input("Please guess the number: "))
if guess > goal:
print ("Too high, try again.")
if guess < goal:
print ("Too low, try again.")
if guess == goal:
break
if guess == goal:
print ("Well done!")
print ("See you later.")