-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidaRut.py
More file actions
79 lines (65 loc) · 2.81 KB
/
validaRut.py
File metadata and controls
79 lines (65 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#Este programa calcula el digito verificador del rut
import re
#Esta función valida el formato de ingreso de datos
# '''La función `validarDato` verifica si una cadena determinada coincide con el patrón de un número de
# identificación chileno (RUT) válido.
# Parameters
# ----------
# rut
# El parámetro "rut" es una cadena que representa un número de identificación chileno, comúnmente
# conocido como "RUT" (Rol Único Tributario). Consta de una secuencia de dígitos seguida de un guión y
# un dígito de verificación (que puede ser un dígito del 0 al 9).
# Returns
# -------
# el resultado de la función `re.match()`, que es un objeto de coincidencia si la `ruta` coincide con
# el patrón, o `Ninguno` si no coincide.
def validarDato(rut):
patron = r'^\d{1,8}-[\dKk]$'
return re.match(patron, rut) # retorna un valor booleano
#Esta función valida el rut, ingresando como parámetros el número y el digito verificador
# '''La función `validarRut` toma una cadena `texto` y una cadena `dvRut` como entrada, y devuelve un
# valor booleano que indica si el `dvRut` dado es un dígito de verificación válido para el `texto`
# dado según el algoritmo RUT chileno.
# Parameters
# ----------
# texto
# El parámetro "texto" representa el número de Rut como una cadena. Es la parte principal del número
# Rut sin el dígito de verificación.
# dvRut
# El parámetro "dvRut" representa el dígito de verificación esperado del número "RUT" (Rol Único
# Tributario). El "RUT" es un número de identificación único utilizado en Chile para fines fiscales y
# legales. El dígito de verificación es el último dígito de la "R
# Returns
# -------
# un valor booleano.
# '''
def validarRut(texto,dvRut):
suma = pos = 0
while -pos < len(texto):
for i in range (2,8):
pos -=1
suma += int(texto[pos]) * i
if -pos == len(texto):
break
i +=1
d = 11 - (suma % 11)
if d == 10:
dv = "K"
elif d == 11:
dv = "0"
else:
dv = str(d)
return dv == dvRut #Retorna valor booleano
#PROGRAMA VALIDADOR DE RUT CHILENO
#Bloque principal
# `rut` es una variable que almacena el valor de entrada de la rut (número de identificación
# chileno) ingresada por el usuario.
# Este código solicita al usuario que ingrese un número de identificación chileno (RUT) y luego lo
# valide.
while True:
rut = input("Ingrese rut: ") #-- rut de ejemplo: 11223344-k -->
if validarDato(rut):
print("verdadero" if validarRut(rut.split('-')[0],rut.split('-')[1].upper()) else "falso")
break
else:
print("Ingrese un numero de rut válido")