Contenido de la etiqueta: python

Código Python para comprobar si un DNI, NIF o NIE es válido

def validoDNI(dni):
    tabla = "TRWAGMYFPDXBNJZSQVHLCKE"
    dig_ext = "XYZ"
    reemp_dig_ext = {'X':'0', 'Y':'1', 'Z':'2'}
    numeros = "1234567890"
    dni = dni.upper()
    if len(dni) == 9:
        dig_control = dni[8]
        dni = dni[:8]
        if dni[0] in dig_ext:
            dni = dni.replace(dni[0], reemp_dig_ext[dni[0]])
        return len(dni) == len([n for n in dni if n in numeros]) \
            and tabla[int(dni)%23] == dig_control
    return False

Eso comprueba que:

  • Tenga una longitud de 9 dígitos, todos numéricos menos el primero (extranjeros) y el último (control) que pueden estar entre unas letras concretas.
  • Si es extranjero se sustituye la primera letra por su número correspondiente antes de calcular el dígito de control.
  • Se comprueba el dígito de control (última cifra).

Devuelve True o False.

Más información sobre el cálculo del dígito de control del NIF/NIE (Ministerio del Inerior, interior.gob.es).

Tema 5: Python

Este tema pretende que comprendáis la filosofía de Python y su sintaxis, os capacitará para realizar páginas en Django (siguiente tema) y scripts complejos. Está desarrollado de manera directa, a base de ejemplos, para ir aprendiendo rápidamente. Para una consulta más profunda del lenguaje he dejado en las referencias un libro completo, “Python para todos” [5], el cual recomiendo ojear; y para consultas concretas de funciones y librerías consultad la web oficial de Python [6]. En este tema doy por supuesto que todos tenéis conocimientos de programación.

Continúe leyendo