По какой-то причине моя программа продолжает скатывать кости снова, независимо от ответа пользователей, и она не печатает сообщение прощания.Почему моя программа делает это?
Я буду включать код, приведенный ниже, так что вы можете проверить себя (Python 3)
from random import randint
def rollthedice():
print("The number you rolled was: "+ str(randint(1,6)))
rollthedice()
shouldwecontinue = input("Do you wish to roll again? (y or n) ").lower()
if shouldwecontinue == "y" or "yes":
rollthedice()
elif shouldwecontinue == "n" or "no":
print("Goodbye.")
elif shouldwecontinue != type(str):
print("Sorry the program only accepts 'y' or 'n' as a response.")
желаемый эффект программы должен быть, что если пользователь вводит у, он бросает кости снова, соответственно, начиная всю программу снова. Принимая во внимание, что если пользователь не вводит, он должен печатать сообщение Goodbye.
Мы видим эту ошибку почти каждый день на SO, это очень распространено. Используйте 'if shouldwecontinue in (" y "," yes "):' вместо этого. –
@PaulRooney - Почти каждый день? Больше похоже на несколько раз в день. >.> – TigerhawkT3
И, OP, вы можете рассмотреть вопрос, который не может технически применяться к каждому вопросу на сайте. Если вы читали раздел по устранению неполадок руководства, насколько это было бы полезно, если бы в оглавлении было 20 одинаковых записей, помеченных как «когда что-то пошло не так, и вы хотите его исправить»? – TigerhawkT3