2017-04-21 2 views
0
def optionFour(self): 
if self == 4: 

    inFile = open('dates.csv', 'r') 

    for line in inFile: 
     gFile = line.strip() 
     gFile = gFile.split(',') 

     occurence = gFile[0] 
     month = int(gFile[1]) 
     day = int(gFile[2]) 
     year = int(gFile[3]) 
     time = gFile[4] 
     event = gFile[5] 
     dates = [month, day, year] 


     day5 = int(input('Enter a day:')) 
     month5 = int(input('Enter a month:')) 
     year5 = int(input('Enter a year:')) 
     dateSelected = [month5, day5, year5] 
     if dates == dateSelected: 
      return str((occurence, ' appointment starting on (', dateSelected, '): ', time, ', ', event)) 
     else: 
      return str('Nothing') 
      break 

    inFile.close() 

Es geht nur durch die erste Zeile der Eingabedatei, warum könnte es das tun? Es prüft nur die erste Zeile und sonst nichts.Nur durch die erste Zeile der Eingabedatei gehen

+1

'return' macht die Funktion ...' return', sollten Sie nicht 'continue' verwenden wollen? –

+0

Ja, es ist wie Pedro Lobito sagt. Ich werde diese Frage nicht ablehnen, aber bitte entfernen Sie sie. Und überprüfen Sie Ihren Codeablauf, bevor Sie Fragen stellen. –

+0

Bei der ersten Iteration kommt Ihre Funktion zu 'return'. Nach 'return' verlassen Sie die Funktion – Sklert

Antwort

0

Ihr Code liest nur eine Zeile, weil Sie das ihm gesagt haben: Lesen Sie eine Zeile, rufen Sie ein Datum vom Benutzer ab und vergleichen Sie die beiden. Wenn sie übereinstimmen, geben Sie einen Termin zurück. Wenn sie nicht übereinstimmen, geben Sie "Nothing" zurück.

Beachten Sie, dass weder der Pause Anweisung oder die Datei Schließung erhalten können: Ihre kehrt den Fluss aus der Funktion erzwingen, bevor Sie dort ankommen.

Ich vermute, dass das, was Sie brauchen, alle von den Zeilen zu lesen ist, speichern die Informationen, und dann den Benutzer bitten um ein Datum in diesem Speicher zu finden.

Verwandte Themen