Объедините 3 функции в одну программу

Спасибо всем, я нашел ошибку. Тост-сообщения должны быть внутри потока пользовательского интерфейса или обработчика. Поскольку у меня было несколько из них в потоке, отличном от UI, он начал генерировать исключение.

0
задан Jonas Graffman 23 February 2019 в 17:21
поделиться

3 ответа

Сначала добавьте одну дополнительную строку в функцию menu_choice (): ## Отредактировано ##

def menu():
    print("Hi! What to you want to do? 1. Withdrawal 2. Change PIN")

def execute(choice):
    if choice == 1:
        print("1") 
    elif choice == 2:
        print("2") 
    elif choice == 3:
        print("3") 
    elif choice == 4:
        print("4")
    elif choice == 5:
        print("5") 
    elif choice == 6:
        print("6") 
        return 1
    return 0

def menu_choice():
    menu()
    choice = int(input("Choose a number!"))
    should_the_loop_break = execute(choice)
    return should_the_loop_break

Вы можете вызвать метод menu_choice () двумя способами:

1) Бесконечный цикл: ## Отредактировано ##

while True:
    should_the_loop_break = menu_choice()
    if should_the_loop_break == 1:
        break

2) Указанный номер.

for i in range(0,n):
    menu_choice()

Дайте мне знать, если это работает / дает ошибку!

PS: Пожалуйста, игнорируйте орфографические ошибки с именами переменных.

0
ответ дан ThePerson 23 February 2019 в 17:21
поделиться

Я бы лучше перестроил код, как показано ниже:

#Returns a number if input is valid and None otherwise
def get_choice():
    try:
        return int(input("choose a number! "))
    except ValueError:
        return None

def execute(choice):
    print("execute %i" % choice)

def main():
    while True:
        choice = get_choice()
        if choice is None: #make sure input is valid
            continue.      #ask again
        if choice != 6:
            execute(choice)
        else:
            break          #choice == 6

 main()

Main реализован в виде цикла while. Он проверяет правильность ввода перед выполнением целевой функции. Он снова спрашивает пользователя, является ли ввод недействительным. Он работает до тех пор, пока выбор не равен 6.

0
ответ дан Redone R 23 February 2019 в 17:21
поделиться

Если вы хотите выполнить бесконечную рекурсию своих команд, выполните:

while True: # while needs a condition that is True. True is obviously True. 1 < 2 would be True as well, 2 < 1 not.
    menu_choice()

Используйте break внутри цикла, если вы хотите выйти из этого цикла.

Если вы хотите выполнить команду n раз, чем:

for i in range(n):
    menu_choice()

где i содержит номер текущего цикла.

0
ответ дан fameman 23 February 2019 в 17:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: