此问题已经在这里有了答案:
def admin():
def admin_try():
print ("1) Ver lista de productos.",'\n')
print ("2) Agregar un producto.",'\n')
print ("3) Modificar un producto (Precio).",'\n')
print ("4) Eliminar un producto.",'\n')
print ("5) Pedidos agendados.",'\n')
print ("6) Salir.",'\n')
global opcion
opcion = int(input("Indique una opción valida: "))
while True:
try:
admin_try()
except (ValueError):
print ("La instrución debe ser numerica.")
admin_try()
admin() # I get an error
执行此代码时出现错误,我想尝试一下循环,并且在执行代码时收到此错误。我想要的是,每当用户提出错误信息时,该函数就会始终执行。
Traceback (most recent call last): File "g:/proyecto/try.py", line 15, in admin admin_try() File "g:/proyecto/try.py", line 11, in admin_try opcion = int(input("Indique una opción valida: ")) ValueError: invalid literal for int() with base 10: 'uno' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "g:/proyecto/try.py", line 20, in <module> admin() File "g:/proyecto/try.py", line 18, in admin admin_try() File "g:/proyecto/try.py", line 11, in admin_try opcion = int(input("Indique una opción valida: ")) ValueError: invalid literal for int() with base 10: 'one'
try-except
:try-except
是由于将输入转换为int
int
,则会出现ValueError
exception
int
就可以执行此代码in
确定输入是否在可接受的输入的in
中。如果输入不在列表中,则再次调用list
。admin()
设置为全局变量。opcion
以外的地方,请使用admin()
。return
功能以外的opcion
需要int
,则使用admin()
return int(opcion)