2017-04-12 13 views
1

私はちょうど約1週間前にPythonを学び始めました。私は今日、簡単なハングマンゲームを作成しようとしました。これまでのところ私のコードはすべて動作しますが、実装方法について考えることができない点が1つあります。私はあなたが正しく 'python'という文字を手紙でタイプしたときにコードを 'あなたが勝つ'ようにしたい。しかし、それが正しいと思ったら、私はそれを終わらせるように思えます。彼らは文字形式に反対して、一回の試みで「python」と入力すると終了します。それを行う私の試みは、.joinの行にあります。私はそれを理解するように見えることはできません。新しいプログラマーのための助言や助言があれば幸いです。初心者のためのpython hangmanコード

guesses = [] 
count = 1 
ans = 'python' 
word = '' 


while count < 10: 
    guess = raw_input('guess a letter: ') 
    guesses.append(guess) 
    if ''.join(word) == ans: 
    print 'you win' 
    break 
    elif len(guess) > 1 and ans == guess: 
    print ans 
    print 'you win' 
    break 
    else: 
    for char in ans: 
     if char in guesses: 
     word.append(char) 
     print char, 
     else: 
     print '_', 
    count += 1 
else: 
    print '\nyou lose' 

答えて

1

まず、私はcurrently on 3.6(代わりにPythonの3.xのを使用して、Pythonの2.7を使用していない、あなたがレガシーコードまたはあなたはわずか2.7で動作することを必要とするいくつかのライブラリーを扱っている場合を除き、言うことから始めたいです)。これはすぐに2.7が廃止され、3.6 +には構文と言語に対する多くの機能と多くのQOL改善があります(2.7には今やない機能がサポートされているからです)。

これで、私は翻訳を3.6にします。それはほとんど差をつけません。ここ

guesses = [] 
count = 1 
ans = 'python' 
word = '' 

while count < 10: 
    guess = input('guess a letter: ') 
    guesses.append(guess) 
    if ''.join(word) == ans: 
     print('you win') 
     break 
    elif len(guess) > 1 and ans == guess: 
     print(ans) 
     print('you win') 
     break 
    else: 
     for char in ans: 
      if char in guesses: 
       word.append(char) 
       print(char) 
      else: 
       print('_') 
     count += 1 
else: 
    print('\nyou lose') 

唯一の2つの変更が、印刷は今ではすべてのprint 'stuff'は今print('stuff')で、raw_inputは今input('input prompt')で、括弧が必要であることです。それ以外は、word.append(char)で逃げることができて驚いています。あなたは、Python strの2.7または3.xでappend()を使用することはできません。私はあなたが''.join(word)を使用する唯一の理由で、配列として使用しようとしていたと思います。これを修正するには、word = ''の代わりにword = []を実行します。今度は''.join(word)が正しく動作するはずです。

次の手順を実行して、プログラムに次のことを実装してください。ユーザーが1文字を入力しない場合は、文字が推測リストに追加されないようにします。あなたがまだ持っていなければこれをmain.py fileにしてみてください。プログラムの一部を機能させる。新しいゲームコマンドを追加します。 charsに実際のハングマンを追加するたびに出力されます。ファイルioを追加すると、推測する単語を読むことができます(つまり、Pythonの代わりに、選択するファイルの中にたくさんの単語を追加することができます)。

関連する問題