[ Foro de Python ]

Básica para un ignorante

02-Jul-2022 16:57
Invitado (Jopapa)
0 Respuestas

Hola a todos. No soy electrónico ni programador.  Hago mal las dos cosas. He tocado en varios lenguajes y tengo pendiente Python. El caso es que necesito ya esta función que encontré para hallar las dos letras de control del número casatral (18 digitos + dos letras del control).

def calcdc(str11):
   resto = 'MQWERTYUIOPASDFGHJKLBZX'
   orden = '0123456789ABCDEFGHIJKLMNÑOPQRSTUVWXYZ'
   valor = [0,1,2,3,4,5,6,7,8,9,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]
   pesos = [13,15,12,5,4,17,9,21,3,7,1]
   suma = 0
   for i in range(0,11):
       suma += pesos[i]*valor[orden.find(str11[i])]
       return resto[suma%23]  
   ref18 = input("Referencia Catastral 14 posiciones: ").upper()
   if (len(ref18) == 18 ):
       print(ref18+calcdc(ref18[0:7]+ref18[14:18])+calcdc(ref18[7:18]))
   else:
       print('Debe introducir una referencia de 18 posiciones')
           

Puede alguien ayudarme a como ejecutar la función o dejarla sin ser función.
Como ejemplo un catastro válido es 4431005YH2543S0025PF  (18 + 2)

Gracias. Y me pondré con Python a la mayor brevedad.




(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.)