Bundesland in Dictionary einfügen

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
PythonUserEiner
User
Beiträge: 3
Registriert: Donnerstag 8. Juni 2017, 19:25

Ich habe ein leeres Dictionary. In dem muss ich die Bundesländer einfügen. Doch wie mache ich das? Mein Code funktioniert nämlich nicht.

Code: Alles auswählen

def bundeslandeinfuegen():
    dicti      = {}
    bundesland = input("Gib das Bundesland ein! ")

    while bundesland:
        new = {bundesland}
        if bundesland not in dicti:
            dicti.update(new)
            bundesland = input("Gib das Bundesland ein! ")

    return dict
WIe mache ich das also?
Zuletzt geändert von Anonymous am Donnerstag 8. Juni 2017, 21:17, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
PythonUserEiner
User
Beiträge: 3
Registriert: Donnerstag 8. Juni 2017, 19:25

Es kommt übrigens immer ein NameError heraus. z.b. "Wien is not defined."
BlackJack

@PythonUserEiner: Du verwendest Python 2 und da nimmt man `raw_input()` für Benutzereingaben.

Der Code zur Eingabe sollte sich übrigens nicht wiederholen. Dafür schreibt man üblicherweise eine ”Endlosschleife” (``while True:``) und bricht die dann bei Bedarf mit ``break`` ab.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@PythonUserEiner: zusätz zu dem was BlackJack schreibt: Du definierst dicti, gibst aber dict zurück. Wenn man ein Element einem Set hinzufügen möchte, nimmt man add. Sobald man ein Bundesland doppelt eingibt, landet man in einer Endlosschleife.
PythonUserEiner
User
Beiträge: 3
Registriert: Donnerstag 8. Juni 2017, 19:25

ich benutze python 3.1. return dict war nur ein Tippfehler. Ich wollte dicti zurückgeben
BlackJack

@PythonUserEiner: Die Fehlermeldung sagt uns aber das es Python 2.x ist und nicht 3.
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Unter Python 3 läuft es nicht.

Dumm gefragt: Warum der Umweg über ein Wörterbuch, ich hätte da eine Liste verwendet. Warum man 16 Strings nicht direkt in den Quellcode packt, verstehe ich auch so nicht. (Den Quellcode habe ich so auch noch nicht gesehen...)
Antworten