Verfasst: Dienstag 19. Januar 2010, 17:49
Willkommen im Forum!
Warum stehen in den ersten 5 Zeilen Zuweisungen, die du aber erst am Ende des Skripts brauchsts?
Der Name schaltjahr ist schlecht gewählt. Erzeugt es ein Schaltjahr? Nein, es überprüft, also wäre `is_schaltjahr` besser. Zeile 8 ist überflüssig. Sorg lieber vorher dafür, dass du eine Zahl übergeben bekommst. Statt 1 und 0 verwende lieber True und False und lass die Klammern weg:
monatsl ist ebenso ein schlechter Name. Besser sowas wie len_of_month. Gleiches gilt bei jahrl.
Zeile 61 wird nie angewendet werden, da der if-Block davor schon fündig geworden ist.
Warum einmal mit und einmal ohne `int`? Ah, ich habs verstanden. Um den Rest wegzubekommen mach lieber 2 `/` Verwende lieber divmod:
Du hast zuviele Kommentare da wo es nicht unbedingt notwendig ist und keine, wo eher welche Sinn machen (Z. 76). Warum erläuterst du nicht das Prinzip, dass du verwendest, oder einfach den Namen des Algorythmus?
Zeilen 79-92 lässt sich verkürzen.
Warum gibts du eigentlich keine Zahl zurück? Das macht hier mehr Sinn. Dann kannst du später immernoch leicht den Wochentag in einen String umwandeln.
Sich wiederholende Sachen wie `[1,3,5,7,8,10]` lassen sich besser an eine Variable binden. Das ist übersichtlicher. Zeilen 120 und 121 lassen sich verkürzen:
Warum stehen in den ersten 5 Zeilen Zuweisungen, die du aber erst am Ende des Skripts brauchsts?
Der Name schaltjahr ist schlecht gewählt. Erzeugt es ein Schaltjahr? Nein, es überprüft, also wäre `is_schaltjahr` besser. Zeile 8 ist überflüssig. Sorg lieber vorher dafür, dass du eine Zahl übergeben bekommst. Statt 1 und 0 verwende lieber True und False und lass die Klammern weg:
Code: Alles auswählen
def is_schaltjahr(jahr):
if not jahr%400 or not jahr%4 and jahr%100:
return True
else:
return False
Zeile 61 wird nie angewendet werden, da der if-Block davor schon fündig geworden ist.
Warum einmal mit und einmal ohne `int`? Ah, ich habs verstanden. Um den Rest wegzubekommen mach lieber 2 `/` Verwende lieber divmod:
Code: Alles auswählen
j=jahr%100
c=int(jahr/100) #c=jahr//100
c,j = divmod(jahr,100)
Zeilen 79-92 lässt sich verkürzen.
Code: Alles auswählen
return ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag')[d]
Sich wiederholende Sachen wie `[1,3,5,7,8,10]` lassen sich besser an eine Variable binden. Das ist übersichtlicher. Zeilen 120 und 121 lassen sich verkürzen:
Code: Alles auswählen
monat==2 and (tag == 28+is_schaltjahr(jahr)