Variable in der Liste überprüfen und bestimmte Aktion ausführen mittels if else Ersatz

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
TheAsker9821
User
Beiträge: 1
Registriert: Dienstag 11. Oktober 2016, 08:37

Hey,
ich hab ein kleines Problem, wie folgt aussieht:

Ich bin noch relativ neu in der Pythongeschichte, also bitte daruf Rücksicht nehmen, danke :D
Also, zur Zeit schreibe ich ein Programm, wo man eine Jahreszahl eingibt, sein Bundesstaat auswählt und dann alle Feiertage (Fest + Beweglich) ausgegeben werden. Das läuft alles ohne Probleme. Aber eins stört mich: Es gibt bewegliche Feiertage, sprich, man kann keine fest definierte Ausgabe/ Anordnung der Feiertage erstellen. Meine Idee war es, die Daten zu sortieren, nach folgendem Prinzip:
Tag = 1 Tag
Monat = 30 Tage

Bsp.: 3 Monate * 7 Tage = Punktzahl: 97


Alle Punktzahlen (als Variable) sind in einer Liste, um diese sortieren zu können.
Wie kann ich nun von der kleinen Punktzahl nach hoch ausgeben, so nach dem Motto:
Neujahr: 01.01.2016(Day_01)
...
Ostersonntag: 27.03.2016(Day_05)

Das Problem ist, dass die Variable Day_01 z.B. nur die Zahl beinhaltet und nicht Neujahr in diesem Fall. Ich hab daran gedacht, eine große if else Verzweigung zu machen, nach dem Motto: Wenn Day_01 als erstes in der Liste ist, dann mach diesen Print und lösche das erst Element der Liste usw. Dies ist meiner Meinung nach doch sehr "hässlich" und nicht wirklich schön geschrieben.

Kann mir hier jemand Weiterhelfen und vielleicht einen anderen Weg dafür zeigen, können ruhig auch komplett andere Wege sein, sprich es muss nicht mit der Liste sortiert werden usw?


Day_x sind hier die Variable Beispiele


MIt freundlichen Grüßen
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Bewegliche Feiertage sind doch nur dann beweglich wenn du nicht weisst um welches Jahr es geht. Du kennst das Jahr, also weisst du auch genau an welchem Tag ein beweglicher Feiertag statt findet.
Sirius3
User
Beiträge: 18335
Registriert: Sonntag 21. Oktober 2012, 17:20

@TheAsker9821: Du mußt Dich fragen, was Du hast. Du hast keine Punktezahlen und auch keine Day_xy, sondern eine Liste mit Paaren (Datum, Feiertag), die ganz einfach nach Datum sortiert werden kann. Zum Arbeiten (sprich Sortieren) mit Datumsangaben gibt es übrigens datetime.date.
Antworten