50 lines
1.6 KiB
Python
50 lines
1.6 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
|
|
def letters_to_numbers(text):
|
|
return [ord(char) - 64 for char in text.upper() if 'A' <= char <= 'Z']
|
|
|
|
# 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:
|
|
#numeri = letters_to_numbers(line.strip())
|
|
# calcolo lunghezza totale della stringa (senza a capo)
|
|
total_len = len(line.strip("\n"))
|
|
# calcolo del numero di lettere da tagliare
|
|
cut = int(total_len/10)
|
|
# calcolo del numero di caratteri da tenere
|
|
resto = total_len - (2*cut)
|
|
|
|
# definisco una variabile per ciclare solo fino alla lunghezza richiesta
|
|
l = 0
|
|
|
|
# per ogni riga (tolto a capo) eseguo la funzione per convertire la lettera in numero
|
|
for i in line.strip("\n"):
|
|
|
|
if l == cut:
|
|
l = 0
|
|
break
|
|
numero = letters_to_numbers(i)
|
|
# sommo alla variabile, la quota di numeri della prima parte di lettere
|
|
somma += numero[0]
|
|
l += 1
|
|
# sommo alla variabile la cifra numerica della parte centrale della stringa
|
|
somma += (sum(int(x) for x in str(resto)))
|
|
l = 0
|
|
|
|
# come per il for sopra, ma per le ultime cifre della stringa
|
|
for i in reversed(line.strip("\n")):
|
|
|
|
if l == cut:
|
|
l = 0
|
|
break
|
|
numero = letters_to_numbers(i)
|
|
somma += numero[0]
|
|
l += 1
|
|
|
|
print ("Result: ", somma)
|