Завершение меню запуска в функции - Python - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь закончить написание этой функции, которая содержит пять различных опций и использует цикл While, чтобы позволить пользователю войти в свой выбор с записью «5», выходящей из цикла. Ниже приведен код, который у меня есть, у меня проблемы с заполнением части меню в функции def_main. Я получаю сообщение об ошибке после else: break

Любой вклад будет оценен. Спасибо за чтение.

def main():

    menuOption = 0

    while 1 == 1:

        print("1. Expanded Sum\n2. Reverse Expanded Sum\n3. Reverse Integer\n4. Product Table\n5. Exit\n")

        menuOption = int(input("Enter correct menu option: "))

        while menuOption<1 or menuOption>5:

            print("Incorrect menu option!!")

menuOption = int(input("Enter correct menu option: "))

if menuOption == 5:

    return

    while 1 == 1:

        num = int(input("Enter positive Integer: "))

    if num <= 0:
        print("You have entered negative integer or zero.")

continue

else:
    break

if menuOption == 1:
    printSum(num, int(False))

elif menuOption == 2:
    printSum(num, int(True))

elif menuOption == 3:
    print(str(reverseInt(num)))

elif menuOption == 4:
    printProductTable(num)

if __name__ == "__main__": main()

def printSum(n, reverse):
    s = sum(range(n+1))
    if reverse:
        print('+'.join(str(i) for i in range(1, n+1)) + ' = ' + str(s))
    else:
        print('+'.join(str(i) for i in range(n, 0, -1)) + ' = ' + str(s))

def reverse_int(n):
    Reverse = 0

    while(n > 0):
        Reminder = n %10
        Reverse = (Reverse *10) + Reminder
        n = n //10

    print(Reverse)

def printProductTable(n):

    for row in range(1,n+1):
        print(*("{:3}".format(row*col) for col in range(1, n+1)))

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Вместо того, чтобы делать while 1==1, вы можете написать while True.А также вы уже проверили while menuOption<1 or menuOption>5.Таким образом, если ваше menuOption является отрицательным числом, оно уже попадает в это состояние, как, скажем, -2 < 1.

А также кажется, что ваш код не отформатирован.Значит, continue чуть выше else.Это сгенерирует ошибку.Переформатируйте ваш код.Дайте правильный отступ.

0 голосов
/ 11 мая 2018

Какую ошибку вы получаете на перерыве?

Похоже, что ваш интервал может быть отключен при продолжении, я полагаю, ваш else идет в if в верхней части оператора, но ваш продолжить не совпадает с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...