Liste auf Wert überprüfen

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
milchtrinker
User
Beiträge: 6
Registriert: Sonntag 18. Juli 2010, 17:30

Hallo zusammen,

ich bin gerade dabei mir Python näher zu bringen und stehe noch ganz am Anfang.
Nun zu meinem kleinen Problem, ich möchte für meine Kinder ein kleines Spielchen machen,
wo sie Hauptstädte raten sollen. Einfach nur um mir selbst kleine Übungen zu erstellen.

Hier mal der Anfang, die meisten Ausgaben sind nur Übung für mich, da ich heute erst mit angefangen habe.

# Module importieren
import random
random.seed

# Listen erstellen
land = ["Albanien ","Andorra ","Belgien ","Bosnien und Herzegowina ","Bulgarien "]
stadt = ["Tirana","Andorra la Vella","Brüssel","Sarajewo","Sofia"]

print(land, stadt)

anzahl = len(land)
print(anzahl)

# Zufallsgenerator erstellen
zufall = random.randint(0,anzahl)
print(zufall)

print("Geben Sie die Hauptstadt von ", land[zufall], "ein")

eingabe = str(input())
print(stadt.index(eingabe))




Das Problem ist, dass die Eingabe immer fehlerhaft ist, weil die "" fehlen, glaube ich zu mindest,
wenn ich irgendeine Stadt aus der Liste direkt hier print(stadt.index(eingabe)) reinschreibe, funktioniert es.

print(stadt.index(eingabe))


Jemand einen Rat ?
BlackJack

@milchtrinker: Lass Dir die Eingabe doch einfach mal ausgeben. Welche Python-Version verwendest Du?

`seed()` musst Du nicht aufrufen. Machst Du auch nicht, aber selbst wenn Du es tatsächlich aufrufen würdest, wird's nicht "zufälliger".

Ansonsten ist die Verwaltung von zusammengehörigen Daten in "parallelen" Listen nicht schön. Ich würde Land und Hauptstadt in Tupeln in *einer* Liste halten.

Und ein zufälliges Element aus einer Sequenz auszuwählen geht auch einfacher als selber eine Zahl als Index zu bestimmen. Das `random`-Modul enthält da eine nützliche Funktion: `choice()`.
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

milchtrinker hat geschrieben:Das Problem ist, dass die Eingabe immer fehlerhaft ist, weil die "" fehlen, glaube ich zu mindest,
wenn ich irgendeine Stadt aus der Liste direkt hier print(stadt.index(eingabe)) reinschreibe, funktioniert es.
Klingt sehr danach als hättest du vergessen zu erwähnen, dass dein Programm dabei abstürzt. Dann wäre das Problem darauf zurückzuführen, dass du Python < 3 verwendest und du besser raw_input statt input verwenden solltest.
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

BlackJack hat geschrieben:Ansonsten ist die Verwaltung von zusammengehörigen Daten in "parallelen" Listen nicht schön. Ich würde Land und Hauptstadt in Tupeln in *einer* Liste halten.
Alternativ könnte man natürlich auch ein Dictionary verwenden

Code: Alles auswählen

laender = {"Albanien": "Tirana",
           "Andorra": "Andorra la Vella",
           "Belgien": "Brüssel"
           }
print laender["Albanien"]
milchtrinker
User
Beiträge: 6
Registriert: Sonntag 18. Juli 2010, 17:30

Danke für die schnellen Antworten, ich gucke mal, das ich es besser löse :)

raw_input und choice() wurden in dem Buch was ich lese noch nicht behandelt, werde mich schlau machen.


Gruß

Milchtrinker
Antworten