Являются ли эти перерывы странными? - PullRequest
0 голосов
/ 11 января 2020

Я новичок в использовании операторов try, except и break, приведенный ниже код работает просто отлично, но мне интересно, есть ли операторы break в конце while (s) верны.

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

Пожалуйста, не обращайте внимания на язык, так как испанский sh - мой родной язык.

1 Ответ

2 голосов
/ 11 января 2020

Нет веской причины использовать здесь обработку исключений. Поскольку вы просто вызываете исключение для условия if только для того, чтобы перехватить его в следующей строке, вы можете также выполнить обработку ошибок после того, как if не сможет подтвердить ввод. В противном случае break, когда if успешно подтвердит ввод.

Используя ваш первый while l oop в качестве примера:

while True:
    nombre = input("\n█ Ingrese el nombre: ")
    if nombre:
        break
    print("\n» » » El valor ingresado no es inválido, intente nuevamente « « «\n")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...