Hey Liebe User,
ich bin erst neu in Python eingestiegen doch versuche mich schon an einem eigenen Programm, welches den Tag eines Datums errechnet.Zuerst habe ich das gemacht: d = (input("d = "))
m = (input("m = "))
y = (input("y = "))
c = (input("c = "))
Dann möchte ich mit der Formel : d + [2.6*m – 0.2] + y + [y/4] + [c/4] – 2*c den Tag errechnen, doch ich bekomme eine Fehlermeldung;
Line 5, in <module>
A = d + [2,6*m - 0,2] + y + [y/4] + [c/4] - 2*c
TypeError: unsupported operand type(s) for -: 'str' and 'int'
Ich hoffe jemand kann mir helfen c:
Wenn es nicht genug ausreicht was ich geschickt habe versuche ich so schnell wie möglich es zu ändern.
mfG Keno
Formel "umwandeln"?
Code: Alles auswählen
>>> text = "100"
>>> zahl = int(text)
>>> print(zahl)
Zusätzlich solltest du auch die eckigen durch runde Klammern ersetzen, damit das funktioniert. Mit deinem Code würdest du eine Liste mit einem Element erzeugen. Das führt dann gleich zum nächsten Fehler, da du dann versuchst, mit Zahlen und Listen zu rechnen. Bessere Variablennamen (Kleinbuchstaben und etwas sprechender) sowie das Entfernen der Klammern um Input wären weitere Punkte (außer, du möchtest dort schon int verwenden).
Apropos Punkte: Die verwendet man im englischen, und damit üblicherweise auch in Programmiersprachen, da wo in Dezimalbrüchen im Deutschen das Komma verwendet wird. Das Komma hat eine andere Bedeutung in Python.
Du kennst das datetime-Modul? Damit kannst Du eigentlich fast jedes Problem in Verbindung mit Datumsangaben lösen, denke ich. Ganz genau habe ich noch nicht verstanden, was Du da berechnen willst.
Wenn Du Dich mit Programmierung befasst, solltest Du immer überlegen, welches Problem Du selbst lösen musst und wo Du auf die vorhandene Lösung zurückgreifen kannst. [Mir fällt das selbst immer noch schwer.]
Code: Alles auswählen
import datetime
id2wochentag = {0 : "Montag",
1 : "Dienstag",
2 : "Mittwoch",
3 : "Donnerstag",
4 : "Freitag",
5 : "Samstag",
6 : "Sonntag"}
datum = datetime.date.today()
print("Heute ist {}.".format(id2wochentag[datum.weekday()]))
@pixewakb: Wobei man da eine Liste statt eines Wörterbuchs verwenden könnte.
Edit: Mit dem `locale`- und dem `calendar`-Modul könnte man sich die Wochentagsnamen auch programmatisch besorgen.
Edit: Mit dem `locale`- und dem `calendar`-Modul könnte man sich die Wochentagsnamen auch programmatisch besorgen.
Code: Alles auswählen
import locale
import datetime
locale.setlocale(locale.LC_TIME, locale.getdefaultlocale())
datum = datetime.date.today()
print("Heute ist {:%A}.".format(datum))
Stimmt, würde den Aufwand noch mal reduzieren.BlackJack hat geschrieben:@pixewakb: Wobei man da eine Liste statt eines Wörterbuchs verwenden könnte.
Darauf würde ich wahrscheinlich selbst nicht kommen - ist mir zu hoch , d. h. so tief bin ich in Python bislang noch nicht vorgedrungen.BlackJack hat geschrieben:Edit: Mit dem `locale`- und dem `calendar`-Modul könnte man sich die Wochentagsnamen auch programmatisch besorgen.
@pixewakb: So ähnlich wie Sirius3's Ansatz — Locale auf Zielsprache setzen und dann vom `calendar`-Modul die Namen holen:
Code: Alles auswählen
In [28]: locale.setlocale(locale.LC_TIME, 'de_DE.UTF-8')
Out[28]: 'de_DE.UTF-8'
In [29]: list(calendar.day_name)
Out[29]:
['Montag',
'Dienstag',
'Mittwoch',
'Donnerstag',
'Freitag',
'Samstag',
'Sonntag']