#python #if-statement #while-loop #menu #user-defined-functions
Вопрос:
Для школьного проекта я и мой партнер по группе создали код, я протестировал каждую функцию в отдельном тестовом файле, чтобы проверить, работают ли они, и все это выглядит хорошо, но меню просто работает не так, как задумывалось. Мой мозг, кажется, не может понять, где я ошибся, я бы хотел услышать второе мнение по этому поводу.. большое вам спасибо
def mainmenu(): print("Hello! Welcome to The Sprint Project Company! Please choose from 1-5: ") print("1. Simple IPO Program") print("2. IFs and Loop sample") print("3. Strings and dates") print("4. Data files and Default Values") print("5. Quit") while True: choice = input("Enter choice (1-5): ") if choice == 1: ipo() elif choice == 2: ifloop() elif choice == 3: stringsdates() elif choice == 4: datafiles() else: break mainmenu()
Всякий раз, когда я запускаю это, оно просто автоматически заканчивается. Я даже протестировал, поместив раздел печати под «еще», но он просто переходит прямо к завершению кода. Большое вам спасибо, что ответили на мой вопрос
Комментарии:
1. Вам нужно будет исправить отступ в коде, чтобы блок while стал частью
mainmenu
функции.
Ответ №1:
В вашем коде есть два пункта. Сначала функция «input()» возвращает строку, следовательно, вы сравниваете СТРОКУ с ЦЕЛЫМ ЧИСЛОМ, затем она принимает значение False. Это похоже на то, что вы сравниваете 1 с «1», и они не одно и то же.
Во-вторых, ваша функция mainmenu() должна быть помещена в цикл. Внесите эти два изменения, и это сработает.
while True: mainmenu() # Add the function here. choice = int(input("Enter choice (1-5): ")) # Change here if choice == 1:
Комментарии:
1. Большое вам спасибо! Это сработало отлично, вы спасли наш проект 🙂