while True: print('List of characters:') print() print('Norbert,') print('Dagget,') print('Dalnoboishik,') print('Semicvetik,') print('Penya.') print('***') print('Quit') print() user_input=input('Choose character:') if user_input == 'Norbert': print("It's a beaver.") print() user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break if user_input == 'Dagget': print("It's a beaver.") print() user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break if user_input == 'Dalnoboishik': print("It's a mouse.") print() user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break if user_input == 'Semicvetik': print("It's a female beaver.") print() user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break if user_input == 'Penya': print("It's just a pen.") print() user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break if user_input == 'Quit': print('Thank you for using.') break
У меня, товарищи, два вопроса:
1 - Самый главный:
Для начала посмотрите на фрагмент кода:
user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break
В принципе, ввод данных работает правильно, но есть одна проблема - в случае если ввести любое слово кроме “no”,(например “test”), то скрипт начинается заново, как-будто введено было слово “ yes”. Как ограничить возможность ввода ответа только двумя словами - “yes” и “no”? Пробовал через “try” и “except”, но ничего не вышло… Привожу в фото пример этой проблемы.
2 вопрос - не громоздкий ли код? Я понимаю, что список персонажей можно заменить строкой. А в остальном как? Можете подсказать?
Заранее спасибо.