2016-08-01 10 views
0

Ich erstelle ein Spiel des Henkers in Python 3 und alles scheint gut zu funktionieren, abgesehen von einem Teil des Spiels. Nehmen wir zum Beispiel das Wort "Hallo". Hallo enthält zwei 'l's. Mein Spiel erkennt nicht, dass mehr als ein Vorkommen eines Buchstabens in einem Wort vorkommen kann und aktualisiert das Spiel daher nicht so, wie es sein sollte. Hier ist, wie das Programm läuft - Wenn ‚L‘ Eingabe2 Vorkommen eines Buchstabens, der nicht durch Indexierung erkannt wurde

The number of times L occured was 2 
('WORD:', 'HEL*O', '; you have ', 10, 'lives left') 
Please input a letter: 

(btw bin mir bewusst, der Druck ist etwas chaotisch und ich havent bekam rund um das Sortieren, dass noch lol)

wie Sie sehen können, ' L 'erlaubt mir nur, das eine L in Hello zu bekommen und nicht alle von ihnen, wie Sie es in einem Spiel des Henkers erwarten würden.

+0

können Sie nicht einfach [re.search] (https://docs.python.org/2/library/re.html#re.search) verwenden? – patrick

Antwort

1

Ich glaube, Sie mißverstehen auch den zweiten Parameter von index, die der Startindex ist, aus der Suche, nicht das n-te Vorkommen zu suchen. Was gerade passiert, ist, dass Sie das erste "L" zweimal ersetzen.

string.index(s, sub[, start[, end]]) 
    Like find() but raise ValueError when the substring is not found. 

Wo find sagt, dass:

Return the lowest index in s where the substring sub is found such that sub is wholly contained in s[start:end]. 

Also, Sie nicht die indcount Variable benötigen, die die n-te L zu finden, müssen Sie die Position des letzten gefundenen L, plus 1 Ersetzen Sie "indcount" durch "pos + 1", so dass es nach dem letzten gefundenen Vorkommen des Buchstabens sucht und wie beabsichtigt funktioniert.

+0

Toll, danke für die Hilfe, ich musste die Indcount-Variable in pos ändern, wie es deklariert werden musste, bevor Sie es verwenden. Ich musste auch pos Startwert auf -1 ändern, da bei 0 es für jeden der anderen Buchstaben in der Zeichenfolge außer L nicht funktionieren würde – RonB7

Verwandte Themen