Hallo Allerseits,
ich habe da ein Problem und stehe irgendwie ziemlich auf dem Schlauch. Und zwar möchte ich mir zu Übungszwecken ein kleines Programm schreiben, welches das Alter eines Hundes und Menschenjahre umrechnet. Nun habe ich mir ein Dictionary mit entsprechenden Schlüssel und Werten erstellt. Rufe ich die Schlüssel von 1-9 auf, werde die richtigen Werte zugeordnet. Ab 10 allerdings fliege ich irgendwie aus dem Dictionary heraus und es wird mir ein anderer Wert außerhalb des Dictionary ausgegeben..... Was mache ich falsch?
Viele Grüße und einen guten Rutsch
Michael
Dictionary nur bis einschließlich 9....
Frohes neues Jahr Allerseits!
Ja, eine Multiplikation mit 7 würde reichen, mir geht es allerdings nicht um den effizientesten Weg sondern um die Funktion des Dictionary.... Nun habe ich mir ein zweites Dictionary erstellt, welches die Schlüssel-Werte-Paare von 10-19 beinhaltet. Das Problem besteht weiterhin....
Hier mal mein Code: (PS: Die einfachere von beiden Lösungen habe ich auskommentiert)
Ja, eine Multiplikation mit 7 würde reichen, mir geht es allerdings nicht um den effizientesten Weg sondern um die Funktion des Dictionary.... Nun habe ich mir ein zweites Dictionary erstellt, welches die Schlüssel-Werte-Paare von 10-19 beinhaltet. Das Problem besteht weiterhin....
Hier mal mein Code: (PS: Die einfachere von beiden Lösungen habe ich auskommentiert)
Code: Alles auswählen
alter = input("Wie alt ist ihr Hund?: ")
hundMensch = {"3" : "27", "4" : "32", "5" : "37", "6" : "42", "7" : "47", "8" : "52", "9" : "57"}
hundMenschB = { "10": "62", "11" : "67", "12" : "72", "13" : "77", "14" : "82", "15" : "87", "16" : "92", "17" : "97", "18" : "102", "19" : "107"}
if alter < "2":
print("Das Alter ihres Hundes beträgt etwa 14 Menschenjahre.")
elif alter == "2":
print("Das Alter ihres Hundes beträgt etwa 22 Menschenjahre")
elif alter > "2":
print("Das Alter Ihres Hundes beträgt in Menschenjahren ca. " + (hundMensch[alter]) + " Jahre")
else:
print("Das Alter Ihres Hundes beträgt in Menschenjahren ca. " + (hundMenschB[alter]) + " Jahre")
#age = int(input("Alter des Hundes: "))
#print()
#if age < 0:
# print("Das stimmt wohl nicht")
#elif age == 1:
# print("Entspricht etwa 14 Jahre")
#elif age == 2:
# print("Entspricht etwa 22 Jahre")
#elif age > 2:
# human = 22 + (age -2)*5
# print("MenschenJahre", human)
- pillmuncher
- User
- Beiträge: 1484
- Registriert: Samstag 21. März 2009, 22:59
- Wohnort: Pfaffenwinkel
Schau mal:
Code: Alles auswählen
$ python3
Python 3.7.7 (default, Jun 20 2020, 16:26:55)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> alter = "11"
>>> if alter < "2":
... print("alter ist kleiner als 2")
... else:
... print("alter ist größer als 2")
...
alter ist kleiner als 2
In specifications, Murphy's Law supersedes Ohm's.
- __blackjack__
- User
- Beiträge: 13100
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@aski011: Das hat überhaupt nichts mit Wörterbüchern zu tun, sondern mit Zeichenketten und Vergleichen. Wenn Du Zahlenwerte auf grösser/kleiner Vergleichen willst, dann musst Du das mit Zahlen machen, nicht mit Zeichenketten, denn:
Code: Alles auswählen
In [66]: "10" > "2"
Out[66]: False
In [67]: 10 > 2
Out[67]: True
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman