Skip to content

Instantly share code, notes, and snippets.

@juanvmarquezl
Last active November 13, 2025 00:13
Show Gist options
  • Select an option

  • Save juanvmarquezl/a299049a3acc5d201924 to your computer and use it in GitHub Desktop.

Select an option

Save juanvmarquezl/a299049a3acc5d201924 to your computer and use it in GitHub Desktop.
Calcular y validar digito del RIF en Venezuela
def calcular_rif(data):
'''
Toma un nro de cedula o rif y calcula el digito validador
data: string con nro de CI o RIF sin espacion ni guiones ej.
V12345678
E12345678
J123456789
devuelve el rif con el digito calculado
no se validan los datos de entrada
para validar: if data == calcular_rif(data):
'''
base = {'V': 4, 'E': 8, 'J': 12, 'P': 16, 'G': 20}
oper = [0, 3, 2, 7, 6, 5, 4, 3, 2]
val = 0
for i in range(len(data[:9])):
val += base.get(data[0], 0) if i == 0 else oper[i] * int(data[i])
digit = 11 - (val % 11)
digit = digit if digit < 10 else 0
return '%s%s' % (data[:9], digit)
@santosrios12
Copy link

No se

@AudiXP
Copy link

AudiXP commented Nov 13, 2025

def calcular_rif(data):
base = {'V': 4, 'E': 8, 'J': 12, 'P': 16, 'G': 20}
oper = [0, 3, 2, 7, 6, 5, 4, 3, 2]
val = 0
for i in range(len(data[:9])):
val += base.get(data[0], 0) if i == 0 else oper[i] * int(data[i])
digit = 11 - (val % 11)
digit = digit if digit < 10 else 0
return '%s%s' % (data[:9], digit)

rif = input("Introduce el número de RIF o CI (ej. V12345678): ")
resultado = calcular_rif(rif)
print("RIF con dígito verificador:", resultado)

input("Presiona Enter para salir...")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment