在Python上的While和Pause的讽刺的沮丧

2024-05-23 22:16:13 发布

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

刚刚发现这个论坛,它的社区是多么的有用。嗯,我在Python上做“while”循环时遇到了一个问题。我想程序的菜单重复,直到您选择选项6-萨利尔(退出)。一开始一切正常,但当我选择了一个选项,程序打印出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')

提前谢谢!我很抱歉有语法错误,你可以看到我不是以英语为母语的人。你知道吗

编辑:似乎代码的结构得到了一个混乱的时候发布。。。有人知道怎么解决这个问题吗?:/


Tags: esosdesystemlaclspausejuan
1条回答
网友
1楼 · 发布于 2024-05-23 22:16:13

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

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

相关问题 更多 >