2017-11-20 5 views
0

私は推測された文字の入力と推測される秘密が与えられたときにハングマンスタイルの出力を返す関数を書こうとしています。まず、新しいリストa-に設定して、秘密の長さの何倍にもします。私はこの変数を反復し、a[stepper] == letterの場合はletterがループしているときに歩行者であるかどうかをテストします。Pythonでステッパー変数を使用してリストを反復処理する方法は?

現在、私はこのコードを

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 

を使用しています。このステッパーを追跡するためには、私がここで使用していますようletter_countための機能が組み込まれていますか?このような

+0

'A'は何ですか? ... – DeepSpace

+0

@DeepSpace 'a'は設定された長さのダッシュのリストです – Travis

+0

' a == ' - ' * len(secret) 'なら、' curr'は ' '? –

答えて

3

使用enumerate()組み込み関数:

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

変数' a'は 'list'または' dict'でなければなりません。 'list'の場合、' secret'と同じ長さでなければなりません。 –

+0

aは秘密と同じ長さのリストです – Travis

+0

新しい 'a'リストを作成していますか? –

3

あなたはjoinと理解して動的に表示された単語を作成することができます。手紙や-を表示するか推測がsetと三項演算子のチェックに格納されています。

>>> 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' 
関連する問題