Python/Esempi
Wikibooks, manuali e libri di testo liberi.
< Python
Questo modulo illustrerà degli esempi di programmi più o meno difficili scritti in Python.
[modifica] Calcolo del codice fiscale
Questo programma presuppone l'esistenza di un file codicicomuni.txt nella stessa cartella dello script, nella forma:
NOMECOMUNE CODICECATASTALE NOMECOMUNE CODICECATASTALE
e così via...
# -*- coding: utf-8 -*- #!/usr/local/bin/python nome = raw_input('Inserisci il tuo nome: ') cognome = raw_input('Inserisci il tuo cognome: ') giornonascita = raw_input('Inserisci il giorno in cui sei nato: ') mesenascita = input('Inserisci il mese in cui sei nato (numero): ') annonascita = raw_input(u"Inserisci l\'anno in cui sei nato: ") sesso = raw_input(u"Inserisci il tuo sesso (M/F): ") cittanascita = raw_input(u"Inserisci il tuo comune di nascita: ") cittanascita = cittanascita.upper() mesi = ['A', 'B', 'C', 'D', 'E', 'H', 'L', 'M', 'P', 'R', 'S', 'T'] consonanti = ['b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'z'] codicicomuni = {} regolecontrollo = {} regolecontrollo['A']=[0,1] regolecontrollo['B']=[1,0] regolecontrollo['C']=[2,5] regolecontrollo['D']=[3,7] regolecontrollo['E']=[4,9] regolecontrollo['F']=[5,13] regolecontrollo['G']=[6,15] regolecontrollo['H']=[7,17] regolecontrollo['I']=[8,19] regolecontrollo['J']=[9,21] regolecontrollo['K']=[10,2] regolecontrollo['L']=[11,4] regolecontrollo['M']=[12,18] regolecontrollo['N']=[13,20] regolecontrollo['O']=[14,11] regolecontrollo['P']=[15,3] regolecontrollo['Q']=[16,6] regolecontrollo['R']=[17,8] regolecontrollo['S']=[18,12] regolecontrollo['T']=[19,14] regolecontrollo['U']=[20,16] regolecontrollo['V']=[21,10] regolecontrollo['W']=[22,22] regolecontrollo['X']=[23,25] regolecontrollo['Y']=[24,24] regolecontrollo['Z']=[25,23] regolecontrollo['0']=[0,1] regolecontrollo['1']=[1,0] regolecontrollo['2']=[2,5] regolecontrollo['3']=[3,7] regolecontrollo['4']=[4,9] regolecontrollo['5']=[5,13] regolecontrollo['6']=[6,15] regolecontrollo['7']=[7,17] regolecontrollo['8']=[8,19] regolecontrollo['9']=[9,21] resti = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] for i in consonanti: consonanti = consonanti + [i.upper()] vocali = ['a', 'e', 'i', 'o', ''] for i in vocali: vocali = vocali + [i.upper()] chars = list() #PRIME 3 LETTERE cons = list() voc = list() for cgn in cognome: if cgn in consonanti: cons = cons + [cgn.upper()] if cgn in vocali: voc = voc + [cgn.upper()] if len(cons) > 2: chars = chars + cons[0:3] if len(cons) == 2: chars = chars + cons[0:2] + voc[0:1] if (len(cons) == 1) and (len(voc) == 2): chars = chars + cons[0:1] + voc[0:2] if (len(cons) == 1) and (len(voc) == 1): chars = chars + cons[0:1] + voc[0:1] + ['X'] if (len(cons) == 0) and (len(voc) == 2): chars = chars + voc[0:2] + ['X'] #SECONDE 3 LETTERE cons = list() voc = list() for nom in nome: if nom in vocali: voc = voc + [nom.upper()] if nom in consonanti: cons = cons + [nom.upper()] if len(cons) > 3: chars = chars + cons[0:1] + cons[3:4] if len(cons) == 3: chars = chars + cons[0:3] if len(cons) == 2: chars = chars + cons[0:2] + voc[0:1] if (len(cons) == 1) and (len(voc) == 2): chars = chars + cons[0:1] + voc[0:2] if (len(cons) == 1) and (len(voc) == 1): chars = chars + cons[0:1] + voc[0:1] + ['X'] if (len(cons) == 0) and (len(voc) == 2): chars = chars + voc[0:2] + ['X'] chars = chars + [annonascita[2], annonascita[3]] chars = chars + [mesi[mesenascita-1]] if sesso=='F' or sesso=='f': chars = chars + [unicode(atoi(giornonascita) + 40)] else: if len(giornonascita)<2: chars = chars + ['0', giornonascita] else: chars = chars + [giornonascita[0], giornonascita[1]] comunicodes = open('codicicomuni.txt', 'r') while 1: citta = comunicodes.readline() citta = citta[0:len(citta)-1] codice = comunicodes.readline() codice = codice[0:len(codice)-1] if (not citta) or (not codice): break codicicomuni[citta] = codice chars = chars + [codicicomuni[cittanascita][0], codicicomuni[cittanascita][1], codicicomuni[cittanascita][2], codicicomuni[cittanascita][3]] sommone = 0 for i in range(1,16): if not i % 2: sommone = sommone + regolecontrollo[chars[i-1]][0] else: sommone = sommone + regolecontrollo[chars[i-1]][1] resto = sommone % 26 chars = chars + [resti[resto]] codicefinale = str() for i in chars: codicefinale = codicefinale + i print "Il tuo codice fiscale e\': %s" % codicefinale

