55 lines
2.1 KiB
Python
55 lines
2.1 KiB
Python
# importo dal file data.py le stringhe date
|
|
with open("data.py", "r") as f:
|
|
lines = f.readlines()
|
|
|
|
# definisco la funzione per convertire le lettere maiuscole nei corrispettivi numeri ed i numeri (stringa) nei corrispettivi valori
|
|
def letters_to_numbers(text):
|
|
return [ord(char) - 64 if 'A' <= char <= 'Z' else ord(char) - 48
|
|
for char in text.upper()
|
|
if ('A' <= char <= 'Z') or ('0' <= char <= '9')
|
|
]
|
|
|
|
# creo la variabile per la somma dei caratteri
|
|
somma = 0
|
|
|
|
# per ogni stringa in input (una per riga)
|
|
# lancio la funzione di conversione e sommo il numero di "celle di memoria"
|
|
for line in lines:
|
|
# definisco una variabile per salvare il valore della lettera corrente nella stringa
|
|
l = line.strip("\n")[0]
|
|
# definisco una variabile per salvare il numero di occorrenze della lettera corrente
|
|
c = 0
|
|
# definisco una nuova stringa con solo la prima lettera della stringa originale
|
|
s = ''
|
|
|
|
# per ogni riga (tolto a capo) eseguo la funzione per convertire la lettera in numero
|
|
for i in line.strip("\n"):
|
|
# se il carattere precedente e' diverso da quello attuale
|
|
if l != i:
|
|
# aggiungo alla stringa il numero di ricorrenze dell'attuale lettera
|
|
s += str(c)
|
|
# aggiungo la nuova lettera alla stringa
|
|
s += l
|
|
# associo alla variabile l il nuovo valore della stringa originale
|
|
l = i
|
|
# setto ad 1 il count
|
|
c = 0
|
|
# se se il carattere precedente e' uguale a quello attuale incremento il contatore c
|
|
if l == i:
|
|
c += 1
|
|
# prima di finire il ciclo for aggiungo alla stringa il numero di ricorrenze dell'attuale lettera
|
|
s += str(c)
|
|
# prima di finire il ciclo for aggiungo la nuova lettera alla stringa
|
|
s += l
|
|
|
|
# aggiungo una variabile per il conteggio parziale dei valori
|
|
parz = 0
|
|
for i in s:
|
|
# salvo nella variabile c il valore convertito dell'attuale carattere
|
|
c = letters_to_numbers(i)
|
|
# aggiungo il valore numerico alla variabile
|
|
parz += int(c[0])
|
|
# sommo il parziale al totale
|
|
somma += parz
|
|
|
|
print ("Result: ", somma)
|