对Python的While和Pause的讽刺沮丧

时间:2014-01-29 16:13:07

标签: python menu while-loop clear cls

刚刚发现这个论坛,令人难以置信的是它的社区是多么有用。好吧,我有一个问题试图在Python上进行“while”循环。我希望程序的菜单重复,直到您选择选项6 - Salir(退出)。一开始一切都很好,但是在我选择一个选项并且程序打印x之后,我按回车键返回菜单或继续(就像你在C上使用暂停一样)并得到一个错误。

Juan es un empleado mexicano comun con poco salario minimo. Que quiere saber de el?  MENU 
1.Salario 
2.Sombrero 
3.Playera 
4.Pantalones 
5.Tenis 
6.Salir

Seleccione una opcion 1 El salario de Juan es  7.5

MENU 
1.Salario 
2.Sombrero 
3.Playera 
4.Pantalones 
5.Tenis 
6.Salir

Seleccione una opcion Traceback (most recent call last):   File "C:\Users\joguzman\Documents\Proyectos Eclipse\Clases\src\main.py", line 22, in <module>
    opcion=int(input("\nSeleccione una opcion\n")) ValueError: invalid literal for int() with base 10: ''

我也想要它清除屏幕,这根本不会发生。这是我的代码:

import os class empleadoClass: #las propiedades que tendra cada empleado
    salario=7.5
    sombrero='nike'
    playera='polo'
    pantalones='patito'
    tenis='adidas'
     juanObject = empleadoClass() #'juanObjeto' esta "heredando" propiedades de empleadoClass

print ("Juan es un empleado mexicano comun con poco salario minimo. Que quiere saber de el?") opcion=1


while (opcion!=6):
    print("MENU \n1.Salario \n2.Sombrero \n3.Playera \n4.Pantalones \n5.Tenis \n6.Salir")
    opcion=int(input("\nSeleccione una opcion\n"))



    if (opcion==1):
        print ("El salario de Juan es ",juanObject.salario)
        os.system('pause>nul')
        os.system('cls')

    elif (opcion==2):
        print ("La marca del sombrero de Juan es ",juanObject.sombrero)
        os.system('pause>nul')
        os.system('cls')

    elif (opcion==3):
        print ("La marca de la playera de Juan es ",juanObject.playera)
        os.system('pause>nul')
        os.system('cls')

    elif (opcion==4):
        print ("La marca de los pantalones de Juan es ",juanObject.pantalones)
        os.system('pause>nul')
        os.system('cls')

    elif (opcion==5):
        print ("La marca de los tenis de Juan es ",juanObject.tenis)
        os.system('pause>nul')
        os.system('cls')

    elif(opcion==6):
        print ("Gracias por usar nuestro programa!")

    else:
        print ("Ingrese una opcion correcta")
        os.system('pause>nul')
        os.system('cls')

提前致谢! :D对不起任何语法错误,你可以看到我不是母语为英语的人。

编辑:发布时,代码的结构似乎变得混乱......有谁知道如何解决这个问题? :/

1 个答案:

答案 0 :(得分:0)

我认为这样做菜单的简单方法是:

def print_menu():
    # print stuff here, 6 exits

while True:
    print_menu()
    try:
        choice = int(input('>>'))
        if choice == 1:
            blah
        elif choice == 2:
            more blah
        elif choice == 6:
            break
    except ValueError:
        handle_error()

清除依赖于您正在使用的操作系统以及运行程序的方式的屏幕。请参阅此问题 - how to clear the screen in python