Verificación del NIF

Enunciado

Crear una función que compruebe si el NIF introducido por un usuario es correcto.

Un NIF es correcto si tienen 8 dígitos y letra. La última letra del DNI se calcula a partir de sus números, se divide el número por 23 y el resto es un número entre 0 y 22. La letra que corresponde a cada número la tienes en esta tabla:

Análisis:

  • Preguntar al usuario el NIF.

  • Crear una función def que indique si el NIF es correcto o no.

  • Si no ha tecleado el NIF correcto, volver a pedírselo a pedir while.

Diagrama

Código

#Verificar un NIF
#Inicializar las variables
def verificar_dni(nif):
    tabla = "TRWAGMYFPDXBNJZSQVHLCKE"
    numeros = "1234567890"
    bandera=False
    if (len(nif) == 9):
          letraControl = nif[8].upper()
          dni = nif[:8]
          if dni.isdigit():
              if tabla[int(dni)%23] == letraControl:
                  mensaje="El NIF introducido es correcto"
                  bandera=True
              else:
                  mensaje="No ha introducido un NIF valido, tecléalo de nuevo"

    else:
        mensaje="El NIF, debe tener 9 carcateres teclealo de nuevo"
    return bandera, mensaje


#Pedir el NIF
bandera=False
while bandera==False:
    nif = input("Introduzca el NIF: ").upper()
    bandera,mensaje=verificar_dni(nif)
    print(mensaje)
print("Fin de programa")

Ejecutarlo