2017-11-20 1 views
0

Ich versuche, eine Funktion zu schreiben, die eine Ausgabe des Hangman-Stils bei einer Eingabe von erratenen Zeichen und einem zu erratenden Geheimnis zurückgibt. Ich beginne damit, eine neue Liste a auf - so oft wie die Länge des Geheimnisses zu machen. Ich iteriere dann durch diese Variable und teste, ob a[stepper] == letter wo letter der Walker ist, während wir durchschleifen.Wie durchläuft man eine Liste mit einer Stepper-Variablen in Python?

Zeit im Auge zu behalten dieser Schritt ich diesen Code in Funktionalität

a = ["-"] * len(secret) 
for curr in guessed: 
    letter_count = 0 # Stepper 
    for letter in secret: 
     if curr == letter: 
      a[letter_count] = curr 
     letter_count += 1 

Gibt es einen eingebauten verwende für letter_count wie ich hier verwende?

+0

Was ist 'a'? nicht der beste Variablenname ... – DeepSpace

+0

@DeepSpace 'a' ist eine Liste von Bindestrichen mit gesetzter Länge – Travis

+0

Wenn' a == '-' * len (geheim) ', wenn 'curr' irgendwas anderes sein soll' - '? –

Antwort

3

Verwenden enumerate() eingebaute Funktion wie folgt aus:

a = ['-'] * len(secret) 
for curr in guessed: 
    for i, letter in enumerate(secret): 
     if curr == letter: 
      a[i] = curr 
+0

Die Variable 'a' muss eine' liste' oder 'dict' sein. Wenn es eine "Liste" ist, muss sie dieselbe Länge wie "geheim" haben. –

+0

a ist eine Liste die gleiche Länge wie das Geheimnis – Travis

+0

Sie erstellen eine neue 'a' Liste? –

3

Sie könnten das angezeigte Wort dynamisch mit join und Verständnis schaffen. Die Vermutungen sind in einem set und einem ternären Operator prüft dann gespeichert, wenn der Brief oder - sollte angezeigt werden:

>>> word = "hangman" 
>>> guessed = set() 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-------' 
>>> guessed.add('a') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a---a-' 
>>> guessed.add('m') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a--ma-' 
>>> guessed.add('e') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-a--ma-' 
>>> guessed.add('n') 
>>> ''.join(letter if letter in guessed else '-' for letter in word) 
'-an-man' 
Verwandte Themen