Python как вернуться в начало программы

Итак, я пытаюсь сделать так, чтобы после завершения функции Settings() программа вернулась к началу функции Menu() , как если бы программа обнаружила ошибку. Я старался:

def Menu(): Clear() print(«Hello, world!») print(«n1. Settings») print(«2. Exit») Choice = input(«n>») try: type(int(Choice)) except Exception as e: print(«Oh no!n I`ve encountered an error!» + e) Menu() if Choice == 1: Settings() if Choice == 2: exit(0) def Settings(): Menu()

Но он просто возвращается туда, откуда был вызван, и не возвращается к началу.

Кто-нибудь может мне с этим помочь?

Я как бы новичок в Python, так что извините, если я сделал что-то не так.

Tresquel 15 Ноя 2020 в 02:30

4 ответа

Лучший ответ

Используйте цикл while и строковый метод .isdigit() , чтобы проверить, ввел ли пользователь число. Кроме того, вы также должны проверить, является ли выбор допустимым вариантом меню.

Примечание: не забудьте привести choice к int, иначе ваши условные выражения не будут выполняться.

Решаю простые задачки на Python с сайта Codewars


def Menu(): while True: Clear() print(‘Hello, world!n’) print(‘1. Settings’) print(‘2. Exit’) choice = input(‘> ‘) if choice.isdigit() and int(choice) in : choice = int(choice) break else: print(«Please enter 1 or 2») input(‘press enter to continue. ‘) if choice == 1: Settings() if choice == 2: exit(0)

Если вы уже проверили, что вводимые пользователем данные являются допустимым вариантом, и превратили его в int, вы можете использовать такой словарь:

switch =

А затем вы можете заменить операторы if в своем меню следующим образом:

def Menu(): while True: Clear() print(‘Hello, world!n’) print(‘1. Settings’) print(‘2. Exit’) choice = input(‘> ‘) if choice.isdigit() and int(choice) in : choice = int(choice) break else: print(«Please enter 1 or 2») input(‘press enter to continue. ‘) switch[choice]()
Kato 15 Ноя 2020 в 00:07

Читайте также:
Программа fonelab для айфона отзывы

Тип Choice — str , поэтому он не может правильно сравнивать, и сравнение всегда не выполняется, приведите значение к типу int с помощью Choice = int(Choice)

def Menu(): Clear() print(«Hello, world!») print(«n1. Settings») print(«2. Exit») Choice = input(«n>») try: Choice = (int(Choice)) except Exception as e: print(«Oh no!n I`ve encountered an error!» + e) Menu() if Choice == 1: Settings() if Choice == 2: exit(0) def Settings(): Menu()
Vaibhav D. Aren 15 Ноя 2020 в 11:25

Просто просто зацикливайте Menu () навсегда:

def Menu(): Clear() print(«Hello, world!») print(«n1. Settings») print(«2. Exit») Choice = input(«n>») try: type(int(Choice)) except Exception as e: print(«Oh no!n I`ve encountered an error!» + e) if Choice == 1: Settings() if Choice == 2: exit(0) def Settings(): pass # do the settings stuff while True: Menu()
Kevin Kreps 14 Ноя 2020 в 23:38
Choice = (int(Choice))

Переменная Choice имеет строковый тип, поэтому вам нужно преобразовать строку типа в int.

Как работает return в Python / Как работает return в Питоне

Источник: question-it.com

Как вернуться к началу программы — Python

Я написал калькулятор ИМТ на Python 3.4, и в конце я хотел бы спросить, хочет ли пользователь снова использовать калькулятор, и если да, вернитесь к началу кода. У меня это пока есть. Любая помощь приветствуется 🙂

Оберните весь код в цикл:

отступ каждой второй строки на 4 символа.

Всякий раз, когда вы хотите «перезапустить с начала», используйте оператор

Каждый раз, когда вы хотите прервать цикл и продолжить после него, используйте

Если вы хотите завершить всю программу, введите в начале вашего кода (перед — бесполезно повторять ! -) и всякий раз, когда вы хотите завершить программу, используйте

Читайте также:
Как принудительно закрыть программу mac

Вам просто нужно вызвать функцию, если пользователь хочет начать заново:

Источник: ru.fluffyfables.com

Как я могу заставить мою программу вернуться к началу в Python?

Я действительно новый программист, просто программируя для удовольствия. Обычно я пишу свои программы с циклами while, чтобы в разное время перейти к разным разделам программы. Это, вероятно, не самый лучший способ, но все это я знаю, как это сделать. Например, я работаю над небольшой программой, которая запускается в оболочке, предназначенной для решения уравнения. Здесь часть программы, которая должна вернуть вас к началу.

while loop==4: goagain = raw_input(«Would you like to do the equation again? (Y/N)») if goagain == «Y»: #Get values again loop=2 elif goagain == «N»: print «Bye!» #End program loop=0 else: print»Sorry, that wasn’t Y or N. Try again.»

У меня он установлен так, что while loop == 2 он получает значения, которые нужно ввести в уравнение, а while loop == 0 ничего не происходит. Однако проблема заключается в том, что когда мой цикл меняется на 2, программа заканчивается там.

Он не хочет возвращаться в код, где я сказал ему, что делать while loop == 2. Итак, мне нужно знать, как вернуть мою программу обратно в этот раздел. Должен ли я использовать другой метод, чем циклы while? Или есть способ вернуть мою программу в этот раздел? Спасибо!

user1247096 03 март 2012, в 18:53

Источник: overcoder.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru