Python Ausgabe

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
kylie007
User
Beiträge: 5
Registriert: Mittwoch 23. November 2005, 21:09
Wohnort: Nähe Frankfurt

Donnerstag 1. Dezember 2005, 22:35

Hallo,
wieso gibt mir Python bei diesem Programm:

Code: Alles auswählen

D="A dictionary is a mutable unordered collection of key/item pairs"
DS="Lists, sets,tuples,dictionaries,queues and stacks are data structures"
dic={"1":"k","b":5,2:dict([tuple((-1,""))]),"3":4}

print dic[dic["3"]/2][-1*dic["b"]/5]
print "o"+dic[1]

bei:
<print dic[dic["3"]/2][-1*dic["b"]/5]>
nichts aus und bei

<print "o"+dic[1]>
KeyError: 1 aus???



Könnt ihr mir helfen? Danke

Edit (Leonidas): Code in Python-Tags gesetzt.
BlackJack

Donnerstag 1. Dezember 2005, 23:22

kylie007 hat geschrieben: wieso gibt mir Python bei diesem Programm:

dic={"1":"k","b":5,2:dict([tuple((-1,""))]),"3":4}

print dic[dic["3"]/2][-1*dic["b"]/5]
print "o"+dic[1]
Wer schreibt den solch kranken Quelltext!?
bei:
<print dic[dic["3"]/2][-1*dic["b"]/5]>
nichts aus und bei
Es wird etwas ausgegeben! Was ausgegeben wird, solltest Du wohl besser selbst herausfinden. Werte den Ausdruck doch einfach mal Stück für Stück in Gedanken aus.

Direkt nach dem ``print`` steht ``dic[dic["3"]/2]``. Das ist wie bei Matheformeln, man ersetzt von innen heraus einfach die Teilausdrücke mit ihrem Ergebnis. ``dic["3"]`` bedeutet: Hole den Wert zum Schlüssel "3" aus dem Dictionary `dic`. Das ist eine 4. Also bleibt ``dic[4/2]``. Daraus wird dann ``dic[2]``, und so weiter.
<print "o"+dic[1]>
KeyError: 1 aus???
Einen `KeyError` bekommt man bei Dictionaries, wenn man versucht auf einen Schlüssel zuzugreifen, der nicht im Dictionary enthalten ist.
Könnt ihr mir helfen? Danke
Klar, mit einem guten Rat: Lass Deine Hausaufgaben nicht von anderen machen, dann lernst Du nämlich nichts dabei. ;-)
Antworten