Я новичок в Python, и у меня возникли проблемы со сценарием. Суть сценария заключается в создании кости, который катится случайное число между 1 и 6. Сценарий выглядит следующим образом:Python Dice Script Failed
import random
while True:
roll = input("Wanna roll? y/n: ").strip().lower()
if roll == "y":
dice = random.randint(1,6)
print(dice)
else:
again = input("How about now? y/n: ").strip().lower()
if again == "y":
dice = random.randint(1,6)
print(dice)
else:
print(again)
Так что это код. В идеале, я хочу, чтобы Python спросил «Хотите бросить»? и, если пользователь вводит «y», Python должен возвращать случайное число между 1 и 6. Этот бит работает нормально.
Если, однако, пользователь вводит «n», я хочу, чтобы Python спросил «Как насчет сейчас?». Если пользователь набирает «y», то я хочу, чтобы Python возвращал случайное число от 1 до 6. Этот бит отлично работает.
Где я сталкиваюсь с проблемами, когда пользователь набирает «n» для вопроса «Хотите бросить?» И также набирает «n» для второго вопроса «Как насчет сейчас?» Программа ДОЛЖНА просто продолжать спрашивать пользователя «Как насчет сейчас?» снова и снова, пока он в конце концов не треснет и не наберет «y» (в этот момент Python дает ему случайное число от 1 до 6). Однако то, что происходит в том, что Python возвращает это:
n
How about now? y/n:
Так это печать ответ пользователя («N»), а также еще раз задать вопрос.
Я не могу понять, как получить Python, чтобы задать вопрос «Как насчет сейчас?» без указания ответа пользователя.
Извините, если это очевидный вопрос и/или если форматирование неверно/неясно. Я занимаюсь этим всего несколько недель.
Заранее благодарен!
Edit: ожидаемое поведение сценария, как это:
"? Хотите ролл у/п:"
"Как о теперь у/п:"
«Как насчет ? Теперь у/п: "
„Как о теперь у/п:?“
и так далее до тех пор, пока пользователь не отвечает на вопрос„Как насчет сейчас“ с «y» вместо «n», в этот момент Python должен вернуть число от 1 до 6, а затем спросить, хочет ли пользователь снова катиться.
EDIT 2: В коде была ошибка. Я поставил .script(), когда хотел набрать .strip() - Извините. Это не является источником моей проблемы, потому что я правильно понял это, когда написал сценарий изначально. К сожалению :-(
Что такое ожидаемое поведение? Вы можете поставить его в вопрос как вы ожидаете в stdout –
, какую версию Python вы используете? Я получаю крах как на 2.7, так и 3.5 из-за использования '.script()', с которым я никогда не сталкивался раньше. Что это значит? делать? – asongtoruin
Извините, я намеревался написать .strip() Я исправил его сейчас. – Nellington