Как мне повторить выбор в формате Else / if на Python?

#python #loops #repeat #text-based

#python #циклы #повторить #текстовый

Вопрос:

Я создаю текстовую игру на Python, к которой я давно не прикасался, для проекта класса. Я хочу, чтобы в игре использовалась функция имен, и хочу, чтобы игрок выбирал их name , поэтому я ввел строку кода, которая должна позволять им повторять строку кода для ввода своего имени. Конечно, я пытаюсь использовать цикл для этого, но я не знаю, как отформатировать его для оператора if / else. Вот код, который у меня есть:

 def naming():
  print("A long, long time ago, there was a person who was born very ordinary, but would live to become very extraordinary.")
  time.sleep(3)
  name=input("Who are you? Give me your name.")
  choice=input("You said your name was ", name,", correct?")
  if choice in Yes:
    prologue():
  else:
  

Я хочу поместить все это в цикл, чтобы он повторялся (именно поэтому я не определил «else» в конце), но я хочу, чтобы цикл прерывался, если проигрыватель скажет «да» при запросе. Спасибо, что дочитали до этого места!

Ответ №1:

 while True:
    name=input("Who are you? Give me your name.")
    choice = input(f'You said your name was {name}, correct?')
    if 'yes' in choice.casefold():
        break
  

Кредиты devdev_dev

Комментарии:

1. вы можете выбрать ответ как правильный, а затем отобразить его вверху, чтобы другие люди могли ссылаться на него, поэтому вам не нужно писать еще один комментарий с окончательным ответом

Ответ №2:

вы можете сделать что-то вроде

 while True:
    name=input("Who are you? Give me your name.")
    choice = input(f'You said your name was {name}, correct?')
    if 'yes' in choice.casefold():
        break
  

Комментарии:

1. выбор не является переменной, хотя, будет ли это все еще работать?

2. Ответ отсутствует name=input("Who are you? Give me your name.") после while True

3. input просто принимает 1 аргумент и его строку, поэтому вы интерполируете переменную в строку

4. Позволит ли это игроку повторно войти, если они скажут «нет»?

5. да, блок кода в цикле будет повторяться до тех пор, пока пользователь не поставит yes — это бесконечный цикл, который заканчивается только тогда, когда вы получаете желаемый результат — циклы while действительно полезны для этого сценария