#!/usr/bin/env python
#-*- coding: utf8 -*-
"""
Script para la validación de RUN Chileno.
@author: felcontreras@gmail.com
"""
import sys
def filtra(rut):
"""
Esta funcion cumple el trabajo de filtrar el RUN.
Omitiendo asi los puntos (.) y Guiones (-) y cualquier otro caracter
que no incluya la variable 'caracteres'.
"""
caracteres = "1234567890k"
rutx = ""
for cambio in rut.lower():
if cambio in caracteres:
rutx += cambio
return rutx
def valida(rut):
"""
Esta funcion cumple el trabajo de realizar la logica de negocio,
ya sea matematica como logica.
"""
rfiltro = filtra(rut)
rutx = str(rfiltro[0:len(rfiltro)-1])
digito = str(rfiltro[-1])
multiplo = 2
total = 0
for reverso in reversed(rutx):
total += int(reverso) * multiplo
if multiplo == 7:
multiplo = 2
else:
multiplo += 1
modulus = total % 11
verificador = 11 - modulus
if verificador == 10:
div = "k"
elif verificador == 11:
div = "0"
else:
if verificador < 10:
div = verificador
if str(div) == str(digito):
retorno = "Valido"
else:
retorno = "Invalido"
return retorno
if __name__ == "__main__":
if len(sys.argv) == 2:
print valida(sys.argv[1])
else:
print "* Atención - Utilizando RUN: 11.111.111-1 en modo prueba.*"
print "# Modo de empleo: 'python "+sys.argv[0]+" 22.222.222-2'. (RUN A VALIDAR) #"
print valida("11.111.111-1")
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario