Seite 1 von 1

Dictionary nur bis einschließlich 9....

Verfasst: Donnerstag 31. Dezember 2020, 21:36
von aski011
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

Re: Dictionary nur bis einschließlich 9....

Verfasst: Donnerstag 31. Dezember 2020, 22:26
von __deets__
Wozu brauchst du denn ein dictionary? Eine simple Multiplikation mit 7 reicht doch?

Und wenn du Hilfe mit deinem Code brauchst, musst du den auch zeigen.

Re: Dictionary nur bis einschließlich 9....

Verfasst: Freitag 1. Januar 2021, 21:08
von aski011
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)

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)

Re: Dictionary nur bis einschließlich 9....

Verfasst: Freitag 1. Januar 2021, 21:21
von pillmuncher
aski011 hat geschrieben: Freitag 1. Januar 2021, 21:08

Code: Alles auswählen

if alter < "2":
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

Re: Dictionary nur bis einschließlich 9....

Verfasst: Freitag 1. Januar 2021, 21:26
von __blackjack__
@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

Re: Dictionary nur bis einschließlich 9....

Verfasst: Freitag 1. Januar 2021, 21:36
von aski011
Nabend,

das ist mir nun wirklich peinlich. Da hätte ich selber drauf kommen müssen. Sorry.
Blutiger Anfänger eben....