I have a problem with this code that genereats an infinite loop.
I have a collection of data in a list named dati.
I want to print this data without print items that have the same "numerocorso" that is the value in index=0 (risultato[0])
My idea was this:
Check the lenght of
"corsiTrovati"list, if this lenght is equal to 0 that's means that I don't have already print any result so i print the result item and append the risultato[0] in corsiTrovati.If the length of this list is not equal to 0 that means that i have have elements in "corsiTrovati" so , for any element in this list, **I compare if the current element of this list is equal to the current value extract from "dati".
If is equal I pass because I don't want to print an element already printed.
If is not true it prints the result and append the actual
risultato[0]in the "corsiTrovati"` list.
I don't understand what i do wrong. Here's the code snippet:
for risultato in dati:
if len(corsiTrovati)==0:
print(f"Numero corso: {risultato[0]} -- Nome corso: {risultato[1]} -- Istituto: {risultato[2]}")
corsoAttuale = str(risultato[0])
corsiTrovati.append(corsoAttuale)
else:
for corso in corsiTrovati:
if corso==risultato[0]:
pass
else:
print(f"Numero corso: {risultato[0]} -- Nome corso: {risultato[1]} -- Istituto: {risultato[2]}")
corsoAttuale = str(risultato[0])
corsiTrovati.append(corsoAttuale)
Edit: complete code:
import csv
with open("./data.csv", newline="") as fileDati:
csvHandler = csv.reader(fileDati,delimiter=",")
numeroDocenti = int(input("Inserisci il numero di docenti da ricercare: "))
listaDocenti = []
corsiTrovati = []
corsoAttuale = ""
while len(listaDocenti) < numeroDocenti:
docenteAttuale = input("Inserisci docente [Name Surname]: ")
listaDocenti.append(docenteAttuale)
filtroAnnoSolare = input("Desideri filtrare per anno Solare? [Y/N]: ")
if filtroAnnoSolare=="Y":
annoSolare = input("Inserisci anno solare: ")
else:
pass
filtroAnnoCorso = input("Desideri filtrare per anno di corso? [Y/N]: ")
if filtroAnnoCorso=="Y":
annoCorso = input("Inserisci anno di corso da ricercare: ")
else:
pass
for docente in listaDocenti:
print(f"Corsi del docente {docente}: ")
if filtroAnnoSolare=="N" and filtroAnnoCorso=="N":
dati = [(riga[1],riga[3],riga[0]) for riga in csvHandler if docente in riga[4]]
for risultato in dati:
if len(corsiTrovati)==0:
print(f"Numero corso: {risultato[0]} -- Nome corso: {risultato[1]} -- Istituto: {risultato[2]}")
corsoAttuale = str(risultato[0])
corsiTrovati.append(corsoAttuale)
else:
for corso in corsiTrovati:
if corso==risultato[0]:
pass
else:
print(f"Numero corso: {risultato[0]} -- Nome corso: {risultato[1]} -- Istituto: {risultato[2]}")
corsoAttuale = str(risultato[0])
corsiTrovati.append(corsoAttuale)