[我是不熟悉try
,except
和break
陈述式的人,以下代码可以正常工作,但是我想知道是否while末尾的break
陈述式是正确。
nombre = ""
edad = None
genero = None
while len(nombre) == 0:
try:
nombre = str(input("\n█ Ingrese el nombre: "))
if len(nombre) == 0:
raise ValueError
except ValueError:
print(
"\n» » » El valor ingresado no es inválido, intente nuevamente « « «\n"
)
else:
break
while type(edad) is not int:
try:
edad = int(input("\n█ Ingrese la edad: "))
except ValueError:
print(
"\n» » » El valor ingresado no es un número entero, intente nuevamente « « «\n"
)
else:
break
while genero not in ["HOMBRE", "MUJER"]:
try:
genero = str(input("\n█ Ingrese el género: ")).upper()
if genero != "HOMBRE" or genero != "MUJER":
raise ValueError
except ValueError:
print(
'\n» » » El valor ingresado debe ser "Hombre" o "Mujer", intente nuevamente « « «\n'
)
else:
break
请忽略该语言,因为西班牙语是我的母语。
这里没有充分的理由使用异常处理。由于您只是在if
条件上引发了一个异常只是为了在下一行中捕获它,因此在if
无法验证输入后,您也可能会进行错误处理。否则,当break
成功验证输入时,将显示if
。
以您的第一个while
循环为例:
while True:
nombre = input("\n█ Ingrese el nombre: ")
if nombre:
break
print("\n» » » El valor ingresado no es inválido, intente nuevamente « « «\n")