2011-03-29 15 views
0

私はサイコロのゲームを構築する教科書の例に従っています。以下は私が理解していないコードスニペットですが、動作します。したがって、runメソッドのwhileループでは、2番目の条件は、TextInterfaceクラスのwantToPlayメソッドが真でなければならないということです。しかし、wantToPlayメソッドを見ると、ブール値の結果はありません。つまり、trueかどうかは指定されていません。誰かがこの仕組みを説明することはできますか?Pythonのダイスポーカーの簡単な質問

class PokerApp: 
    def run(self): 
     while self.money >= 10 and self.interface.wantToPlay(): 
      self.playRound() 

class TextInterface: 
    def wantToPlay(self): 
     ans = input("do you wish to try your luck? ") 
     return ans[0] in "yY" 

答えて

4

これはブール値を返します。それの

return ans[0] in "yY" 

だと思うが言うように:ことを決議

ans = 'Yes' 
ans[0] in 'yY' 

if ans[0] in "yY": 
    return True 
else: 
    return False 
+1

ああ、私はあなたが書いた2番目のバージョンとして実際に明示的ではないので参照してください。 –

+1

正しい。同じことを達成するための簡単な方法です。 –

+2

Pythonにもっと慣れるにつれて、明示的に見えるようになります – juanchopanza

1

それはブール値を返しません、これを試してみてくださいTrue。文字列ansの最初の文字がYyかを評価しています。