44 lines
1.3 KiB
Python
44 lines
1.3 KiB
Python
import importlib.util
|
|
|
|
# Import del file con le liste di numeri ed operatori
|
|
data = "matrix.py"
|
|
|
|
spec = importlib.util.spec_from_file_location("matrix", data)
|
|
matrix = importlib.util.module_from_spec(spec)
|
|
spec.loader.exec_module(matrix)
|
|
|
|
# creo una lista vuota
|
|
num = []
|
|
|
|
# per ogni riga della lisa dei numeri estraggo il valore
|
|
# mi serve perche' se no prende l'andare a capo come valore
|
|
for line in matrix.n.splitlines():
|
|
num.append(line)
|
|
|
|
#inverto la stringa degli operatori
|
|
s_inverted = matrix.s[::-1]
|
|
|
|
# creo una nuova lista di lunghezza pari alla meta' dei numeri a disposizione
|
|
elementi = int(len(num)/2)
|
|
|
|
# scorro i tre array, i numeri in posizione pari sono unita', i numeri in
|
|
# posizione dispari (faccio per 10) sono decine e poi sommo tutto nella nuova lista
|
|
new_num = [0] * elementi
|
|
for n, (d, u) in enumerate(zip(num[::2], num[1::2])):
|
|
new_num[n] += int(u) + (int(d)*10)
|
|
|
|
# creo la variabile per sommare i valori
|
|
# la definisco con il valore del primo numero
|
|
# converto la stringa contenuta nella lista in intero
|
|
result = int(new_num[0])
|
|
|
|
# ciclo insieme tutti i numeri e gli operatori (invertiti), partendo dal
|
|
#secondo numero della lista dei valori
|
|
for n, op in zip(new_num[1:], s_inverted):
|
|
if op == '+':
|
|
result += int(n)
|
|
if op == '-':
|
|
result -= int(n)
|
|
|
|
#stampo il risultato
|
|
print("result =", result)
|