2016-11-17 1 views
-1

Für meine Henkman-Anwendung ist der Code wie folgt;Suche nach Wiederholungszeichen in einer Liste für Hangman-python3

text=list(input("Enter the word to be guessed:")) 
guess=[] 
tries=5 
clue=input("Enter a clue: ") 
print('RULES:\n 1) type exit to exit applcation \n 2) type ? for the clue') 

for i in range(len(text)): 
    t='_ ' 
    guess.append(t) 
print(guess) 

while True: 
    g=input("Guess a letter: ") 
    if g in text: 
     print("you guessed correct") 
     y=text.index(g) 
     guess[y]=g 
     print(guess) 
    continue 
elif g=='exit': 
    exit() 
elif g=='?': 
    print(clue) 
elif tries==0: 
    print ("you have run out of tries, bye bye") 
    exit() 
else: 
    print(g,' is not in the word') 
    tries -=1 
    print("you have",tries,'tries left') 
    continue 

für den Code zum Beispiel, wenn der Text war zu erraten ‚Avatar‘, wenn ‚a‘ erraten wird, ist es nur die erste Instanz des Briefes zurückkommen würde und nicht für Positionen; text [2] [4]

Antwort

0

Ihr Problem kommt von der Verwendung y = text.index(g). Dies gibt nur den Index der ersten gefundenen Übereinstimmung zurück. Sie müssen etwas mehr wie folgt tun:

0

Sie können reguläre Ausdrücke verwenden, um die Indizes eines Musters zu finden.

>>import re 
>> [i.start() for i in re.finditer('a', 'avatar')] 
[0, 2, 4] 
+0

aus irgendeinem Grund, dass nicht funktioniert für mich, wird der Code für Python3.x laufen? – reuben

+0

Welchen Fehler bekommen Sie? – Vince

+0

y = [i.start() für i in re.finditer (g, Text)] Datei "/Users/----/anaconda/lib/python3.5/re.py", Zeile 220, in finderiter return _compile (Muster, Flags) .finditer (Zeichenfolge) TypeError: erwartete Zeichenfolge oder bytes-ähnliches Objekt – reuben

Verwandte Themen