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")