Seite 1 von 1

Problem mit zählen von Sekunden eines Jahres

Verfasst: Freitag 23. November 2007, 16:52
von artesi
Hallo,

ich habe ein einfaches Script, das für jede Minute im Jahr (in diesem Fall ein Schaltjahr) fortlaufend die entsprechende Sekundenzahl berechnen und in eine Datei schreiben soll. Hierfür habe ich die Anzahl der Minuten eines Schaltjahres berechnet (60*24*366=527040) unf folgende Schleife programmiert:

Code: Alles auswählen

    x=0
    i=1
    while i <= 257040:
    
        if i <257040:
            str(x)
            newDataFile.write(str(x)+' ')
        else:
            str(x)
            newDataFile.write(str(x)+'\n')
        
        x=x+60
        i=i+1
Anstatt aber am Ende die richtige Summe 31622400 Sekunden zu erreichen, beendet das Script die Schleife mit einem Wert der in etwa halb so groß ist. Ich habe das auch schon im Interpreter direkt laufen lassen um zu testen, ob es an der Datei liegt, die geschrieben werden soll, aber dort bleibt er auch bei demselben Wert stehen.
Habe ich einen groben Denkfehler gemacht? Ich hab gerade keine Ahnung woran das liegen könnte.
Wäre dankbar für jeden Hinweis.

Danke schonmal,
Grüße,
Marion.

Verfasst: Freitag 23. November 2007, 17:06
von BlackJack
Der Hinweis ist: Schau Dir an was Du im *Text* stehen hast was Du ausgerechnet hast und dann was im *Programm* für eine Zahl steht. ;-)

Edit: Das kann man übrigens etwas kompakter haben:

Code: Alles auswählen

    data_file = open('test.txt', 'w')
    
    data_file.write(' '.join(str(m * 60) for m in xrange(60 * 24 * 366 + 1)))
    data_file.write('\n')

    data_file.close()

Verfasst: Montag 26. November 2007, 10:02
von artesi
Ohje... na das erklärt natürlich einiges... kein Wunder!!

Vielen Dank, manchmal steht man einfach auf dem Schlauch!!
Und danke auch für den Code-Tip,

Grüße, Marion.