Форум сайта python.su
0
Необходима помощь по коду. Выкладываю его весь:
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
user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': continue if user_input == 'no': print('Thank you for using.') break
Прикреплённый файлы:
Screenshot_2016-02-24-00-55-40.png (99,9 KБ)
Офлайн
4
1. Если есть необходимость выбора из двух вариантов, то почему бы просто не сделать так, что любая вводимая строка кроме “yes” завершает программу?
2. Если несколько раз совершается одно и тоже действие, то, наверное, надо его оформить в виде функции.
Как то так
Офлайн
0
shaptmos
1. Если есть необходимость выбора из двух вариантов, то почему бы просто не сделать так, что любая вводимая строка кроме “yes” завершает программу?2. Если несколько раз совершается одно и тоже действие, то, наверное, надо его оформить в виде функции.Как то так
while 1: try: x = int(input('введите число типа int : ')) except ValueError: print ('Введенное вами число не int!!!') else: print ('Ура, введено корректное число!') break
Офлайн
49
Если нужно целое число, то проще проверить на isdigit…
Ну и логика не верна. Лучше воспользуйтесь словарем, который-бы возвращал то, что нужно вставить в print. Ну и каждый раз спрашивать в if про закрытие это хардкор. Узнайте, что такое DRY…
Насчет словаря. Пример:
vatiants = {'Norbert': "It's a beaver."}
Офлайн
221
byrjd1998
не надо дублировать темы
Офлайн
0
4kpt_IV
Если нужно целое число, то проще проверить на isdigit…Ну и логика не верна. Лучше воспользуйтесь словарем, который-бы возвращал то, что нужно вставить в print. Ну и каждый раз спрашивать в if про закрытие это хардкор. Узнайте, что такое DRY…Насчет словаря. Пример:
Офлайн
4
Есть какие-нибудь идеи?…
characters_list = ['Norbert', 'Dagget', 'Dalnoboishik', 'Semicvetik', 'Penya'] answers_list = ["It's a beaver.","It's a beaver.", "It's a mouse.", "It's a female beaver.", "It's just a pen."] just_dictionary = {x:y for x in characters_list for y in answers_list} first_loop = 1 while first_loop: second_loop = 1 print('List of characters:') print() print(*characters_list) print('***') print('Quit') user_input=input('Choose character:') print(just_dictionary.get(user_input)) while second_loop: user_input=input('Do you want continue? Yes/no?:') if user_input == 'yes': second_loop = 0 elif user_input == 'no': first_loop = 0 second_loop = 0 else: print("Try again")
Офлайн
568
shaptmosда ладно?
их есть у меня
characters_list = ['Norbert', 'Dagget', 'Dalnoboishik', 'Semicvetik', 'Penya'] answers_list = ["It's a beaver.","It's a beaver.", "It's a mouse.", "It's a female beaver.", "It's just a pen."] just_dictionary = {x: y for x in characters_list for y in answers_list} print(just_dictionary)
{'Norbert': "It's just a pen.", 'Penya': "It's just a pen.", 'Semicvetik': "It's just a pen.", 'Dalnoboishik': "It's just a pen.", 'Dagget': "It's just a pen."}
Офлайн
4
Хм, а можете подсказать почему так происходит?
Офлайн
568
shaptmosВы сделали вложенные циклы, чего вы ожидаете? Выполните
Хм, а можете подсказать почему так происходит?
# -*-coding:utf-8-*- def X(): for i in range(10): print("Call next X") yield i def Y(): for i in range(10): print("Call next y") yield i z = {x:y for x in X() for y in Y()}
just_dictionary = dict(zip(characters_list, answers_list))
Офлайн