Letra DNI
Calcular letra DNI en Python
En España todo Documento Nacional de Identidad (DNI) está compuesto por 8 dígitos y una letra al final. Esta letra actúa a modo de checksum. Es decir, la letra se calcula a partir de los dígitos del DNI.
Podemos escribir una función en Python que dado un DNI nos devuelva el DNI con la letra de la siguiente manera.
def letra_dni(dni):
if len(str(dni)) != 8:
raise Exception("El DNI debe tener 8 dígitos")
LETRAS_DNI = 'TRWAGMYFPDXBNJZSQVHLCKE'
return f"{dni}{LETRAS_DNI[int(dni) % 23]}"
print(letra_dni('00000000'))
# 00000000T
Como puedes ver:
- Se comprueba que el DNI tiene 8 dígitos.
- La letra se calcula usando el módulo 23 del DNI.
- Se elige la letra de la secuencia.
- Si el resultado es 0, se toma la
T
, si es 1 laR
, etc.