如何将错误陷阱循环回原始问题

2024-04-24 20:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有五样东西的菜单选项。如果用户输入的数字不在1到5之间,我的程序将重新搜索该数字,但即使用户输入的数字有效,程序仍将结束。你知道吗

print("   ")
print("pick a menu option between 1-5")
print("   ")
print("   ")
print("1 - Enter RLE")
print("2 - Display ASCII art")
print("3 - covert ASCII art option")
print("4 - convert RLE option")
print("5 - Quit")
print("   ")
print("   ")
print("   ")

user=0

user=int(input('select a number between 1 and 5'))


    if user == 1:
        print("hi")

    elif user == 2:

        user = input('select a file with an ASCII art image')
        f = open(user, 'r')
        if f.mode == 'r':
            showart = f.read()
            print(showart)
    # asking user for file
    #showing the file
    #file name LogoArt.txt

    elif user == 3:
        print("hi")

    elif user == 4:
        print("hi")

    elif user == 5:
        print('goodbye')
        import sys
        sys.exit()
    #exits the program



    else:
        user=int(input("select a number between 1 and 5"))

我希望else的输出能够重新询问最初的问题


Tags: 用户程序inputascii数字betweenhiselect
2条回答

这里有一个很好的,简单的,无循环的答案,里面有函数定义,甚至还有一点递归。如果您对python或一般编程还不熟悉,那么您将学到一些非常好的东西。祝你好运。如果有任何问题,请随时提出。你知道吗

def Menu():
#Put all your option prints here. 
    print(" ")
    print(" ")
    Option = int(input("Pick an option between 1 and 5.  ")
    print(" ")
    if Option == 1:
        pass #Replace each "pass" with what you want that Option to do. 
        Menu()
    elif Option == 2:
        pass
        Menu()
    elif Option == 3:
        pass
        Menu()
    elif Option == 4:
        pass
        Menu()
    elif Option == 5;
        import sys
        sys.exit()
    else:
        Menu()
Menu()
def ask (user) :

    if user == 1:
        print("hi")

    elif user == 2:

        user = input('select a file with an ASCII art image ')
        f = open(user, 'r')
        if f.mode == 'r':
            showart = f.read()
            print(showart)

    elif user == 3:
        print("hi")

    elif user == 4:
        print("hi")

    elif user == 5:
        print('goodbye')
        import sys
        sys.exit()


while (True) :


    print("   ")
    print("pick a menu option between 1-5 ")
    print("   ")
    print("   ")
    print("1 - Enter RLE ")
    print("2 - Display ASCII art ")
    print("3 - covert ASCII art option ")
    print("4 - convert RLE option ")
    print("5 - Quit ")
    print("   ")
    print("   ")
    print("   ")

    user=int(input("Select an integer between 1 and 5 : "))

    if (user<5 and user > 1) :
        ask(user)
    else:
        user=int(input("Please enter a number between 1 and 5 : "))
        while (user > 5 or user < 1) :
            user=int(input("Please enter a number between 1 and 5 : "))

        ask (user)

输出:

enter image description here

相关问题 更多 >