[ Foro de Python ]
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.)