这些break语句是否奇怪?

问题描述 投票:0回答:1

[我是不熟悉tryexceptbreak陈述式的人,以下代码可以正常工作,但是我想知道是否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

请忽略该语言,因为西班牙语是我的母语。

python syntax
1个回答
2
投票

这里没有充分的理由使用异常处理。由于您只是在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")
© www.soinside.com 2019 - 2024. All rights reserved.