[ Foro de Python ]
Quiero solo darle 3 oportunidades al usuario de que se equivoque, en este caso el rut es un int, entonces si ingresa un caracter(str) que funcione el bucle y aparezca por ejemplo lo que puse en los #.
try:
rut = int(input('Ingrese su rut (sin punto ni guion, ni ultimo digito verificador)'))
except:
print('Amigo, te dije que solo numeros...')
rut = int(input('Ingrese su rut nuevamente (sin punto ni guion, ni ultimo digito verificador)'))
# Si en esta ocacion vuelve a ingresar algo erroneo que en este caso sería un caracter... tendría que ir
# print('Amigo, te haz equivocado 2 veces, te queda una oportunidad)
# Como es la ultima oportunidad y si se vuelve a equivocar, darle una salida correcta al programa... entonces iría algo como:
# print ('Te haz vuelto a equivocar, se cerrará el programa, intentelo de nuevo más tarde)
# Y se termina el programa de forma correcta y no se termina como por un error... la cual esa es la funcion del try y except.
lista = list(str(rut))
lista.reverse()
multiplicador = 2
contadora = 0
for y in lista:
producto = int(y) * multiplicador
multiplicador = multiplicador + 1
if multiplicador == 8:
multiplicador = 2
contadora = contadora + producto
resto = contadora % 11
verificador = 11 - resto
if verificador == 11:
verificador = 0
if verificador == 10:
verificador = 'K'
print(f'Su digito verificador es el siguiente : -{verificador}')
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)