0

刚刚发现这个论坛,令人难以置信的是它的社区有多大帮助。好吧,我在尝试在 Python 上创建“while”循环时遇到了问题。我希望程序的菜单重复,直到您选择选项 6 - Salir (Exit)。一开始一切都很好,但是在我选择一个选项并且程序打印 x 事物后,我按 Enter 键返回菜单或继续(就像在 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 对任何语法错误深表歉意,正如您所见,我不是以英语为母语的人。

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

4

1 回答 1

0

I think a simpler way to do a menu like this is to:

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()

As for clearing the screen that depends on what OS you are using and how you are running the program. See this question - how to clear the screen in python

于 2014-01-29T16:29:31.707 回答