Formation ändern

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
MAFearless
User
Beiträge: 1
Registriert: Donnerstag 23. November 2023, 12:40

Hallo Zusammen,

weiß jemand wie ich dieses Problem lösen kann?

for n in Monat:
print("","","","","-",n,"findet am",Wochentag[n],"den",Tag[n],".","",Monat[n],"2022 statt.","Der Feiertag gilt",
Gültigkeit[n]+".","\n")

Ausgabe:
- Heilige drei Koenige findet am Sonntag den 6 . Januar 2022 statt. Der Feiertag gilt regional.

-> Problem: Nach der Zahl 6 ist ein Leerzeichen. Das möchte ich weg haben.

Ich habe probiert:

for n in Monat:
print("","","","","-",n,"findet am",Wochentag[n],"den",Tag[n]+".","",Monat[n],"2022 statt.","Der Feiertag gilt",
Gültigkeit[n]+".","\n")

-> Fehlermeldung

Danke vorab!
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

`n` ist ein schlechter Name für einen Monat, die Frage ist aber, warum hat ein Monat einen Wochentag oder einen Tag?
Ich vermute mal, dass es sich bei Monat, Wochentag, Tag und Gültigkeit eigentlich um Wörterbücher handelt, wo es eigentlich ein einziges Wörterbuch sein sollte.

Für die Asugabe benutzt man Formatstrings:

Code: Alles auswählen

FEIERTAGE = {
    "Heilige drei Könige": {
        "Wochentag": "Sonntag",
        "Tag": "6",
        "Monat": "Januar",
        "Gültigkeit": "regional",
    }
}


for feiertag, details in FEIERTAGE.items():
    print(f"{feiertag} findet am {details['Wochentag']} den {details['Tag']}. {details['Monat']} 2022 statt. Der Feiertag gilt {details['Gültigkeit']}")
Auch diese Datenstruktur ist noch nicht ideal, weil der Wochentag einfach aus dem Datum berechenbar ist und das Datum auf mehrere Schlüssel verteilt ist.

Code: Alles auswählen

import locale
from datetime import date as Date

FEIERTAGE = [
    {
        "Name": "Heilige drei Könige",
        "Datum": Date(2022, 1, 6),
        "Gültigkeit": "regional",
    }
]

locale.setlocale(locale.LC_ALL, "")

for details in FEIERTAGE:
    print(f"{details['Name']} findet am {details['Datum']:%A den %d. %B %Y} statt. Der Feiertag gilt {details['Gültigkeit']}")
Antworten