2017-10-30 4 views
-1
def isWordGuessed(secretWord, lettersGuessed): 
    for char in secretWord: 

     if char not in lettersGuessed: 
      print('_',end=' ') 
     else: 
      print(char,end=' ') 

print(isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's'])) 

出力は、まだ関数を呼び出すために印刷機能を使用している間、私は私の出力は_pp_eになりたい_pp_eNone出力プリントなしとで囲まれていない「は」

ではありません。

どうすればよいですか?あなたは、単にこれを変更することができ

+1

可能な複製を参照してください(https://stackoverflow.com/questions/26937153/python-hangman-replacing-letters)すべてconfusion.Iについては申し訳ありません –

+0

は文字通り、このサイトに参加しています30秒前。 –

+1

私はあなたのためにそれを修正しました。コードを実行すると '_ p p _ e'となります。別の何かを期待していましたか? –

答えて

0

:あなたはあなたのためのループをループした後

def isWordGuessed(secretWord, lettersGuessed): 
    for char in secretWord: 
     if char not in lettersGuessed: 
      print("_", end="") 
     else: 
      print(char, end="") 
    return "" 

print(isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's'])) 

Noneは、暗黙的な戻り値です。あなたの関数isWordGuessed doesntの以来

+0

ありがとうございます。しかし、この問題について別の方法がありますか? –

+0

はい、もちろんです。あなたはループの後に '' return '"を追加することができます。これはforループを終了した後に 'None'が返されるという問題を解決します。 – imp

0

はどんなreturnキーワードを持って、声明

isWordGuessed('apple', ['e', 'i', 'k', 'p', 'r', 's'])Noneを返します。

ここではprintメソッドと呼ばれるので、Noneprint関数に返され、それが印刷されます。

それはsecretWordの終わりに発生する理由はisWordGuessed

P.S.中にあなたprint文でendパラメータの使用によるものです Pythonでは、変数名はアンダースコアで区切られた小文字でなければなりません。 [文字を置き換え、Pythonの絞首刑執行人?]のthis

関連する問題