Salve a tutti, sto cercando di realizzare un programma che risolva equazioni. Questa è la funzione che dovrebbe risolvere quelle di primo grado:
def Risolvi1():
# Inizio acquisizione elementi di primo grado primo membro
print("PRIMO MEMBRO:")
print("Inserire i coefficienti degli elementi di primo grado (Premi invio ogni volta e concludi scrivendo 'fine')")
a=input()
if a!='fine':
a=float(a)
coeff1=[a]
while a != 'fine':
a = input()
if a != 'fine':
a = float(a)
coeff1.append(a)
sum1m1g = 0
for i in coeff1:
if coeff1[i] != 'fine':
sum1m1g=sum1m1g+coeff1[i]
#Inizio acquisizione termini noti primo membro
print("Inserire i termini noti al primo membro (Premi invio ogni volta e concludi scrivendo 'fine'")
b=input()
if b!='fine':
b=float(b)
tnoti1=[b]
while (b!='fine'):
b=input()
if b!='fine':
b=float(b)
tnoti1.append(b)
sumn1=0
for i in tnoti1:
if tnoti1[i]!='fine':
sumn1=sumn1+tnoti1[i]
#Acquisizione elementi di primo grado secondo membro
print("")
print("SECONDO MEMBRO")
print("Inserire i coefficienti degli elementi di primo grado (Premi invio ogni volta e concludi scrivendo 'fine'")
c = input()
if c != 'fine':
c = float(c)
coeff2 = [c]
while (c != 'fine'):
c = input()
if c != 'fine':
c = float(c)
coeff2.append(c)
sum2m1g = 0
for i in coeff2:
if coeff2[i] != 'fine':
sum2m1g = sum2m1g + coeff2[i]
# Inizio acquisizione termini noti primo membro
print("Inserire i termini noti al primo membro (Premi invio ogni volta e concludi scrivendo 'fine'")
d = input()
if d != 'fine':
d = float(d)
tnoti2 = [d]
while (d != 'fine'):
d = input()
if d != 'fine':
d = float(d)
tnoti2.append(d)
sumn2 = 0
for i in tnoti2:
if tnoti2[i] != 'fine':
sumn2 = sumn2 + tnoti2[i]
#Risoluzione dell'equazione:
return (sumn2-sumn1)/(sum1m1g-sum2m1g)
print(" Benvenuto in EquSolver 1.0!")
print("EquSolver permette di risolvere equazioni di primo e secondo grado.")
print("Selezionare il genere di equazione:")
print("1 Equazione di primo grado")
print("2 Equazione di secondo grado")
print("")
tipsel=input()
if tipsel=='1':
sol = Risolvi1()
print("La soluzione dell'equazione è ", sol)
Come potete vedere ho deciso di far introdurre i coefficienti in un vettore, che si allunga tramite la funzione append, e ho posto come condizione di uscita che si digiti il comando 'fine'.
Il problema è che quando provo ad eseguire il programma mi viene dato sempre lo stesso errore dopo aver digitato il comando 'fine'.
Ho provato a rileggere più volte il codice ma non trovo l'errore. Qualcuno ha idee?
Grazie in anticipo!