关于python中骰子扑克的简单问题

关于python中骰子扑克的简单问题,python,poker,dice,Python,Poker,Dice,我正在按照教科书上的例子制作一个骰子扑克游戏。下面是一段我不太理解的代码,但它确实有效。所以在run方法下的while循环中,第二个条件是TextInterface类中的wantToPlay方法必须为true,对吗?但是当我看WantPlay方法时,没有给出布尔结果,即它是否为真。有人能解释一下这是怎么回事吗 class PokerApp: def run(self): while self.money >= 10 and self.interface.wantTo

我正在按照教科书上的例子制作一个骰子扑克游戏。下面是一段我不太理解的代码,但它确实有效。所以在run方法下的while循环中,第二个条件是TextInterface类中的wantToPlay方法必须为true,对吗?但是当我看WantPlay方法时,没有给出布尔结果,即它是否为真。有人能解释一下这是怎么回事吗

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"

这将返回一个布尔值:

return ans[0] in "yY"
可以这样想:

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

这将返回一个布尔值:

return ans[0] in "yY"
可以这样想:

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

它确实返回布尔值,请尝试以下操作:

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

解析为
True
。它正在评估字符串ans中的第一个字符是
Y
还是
Y

它确实返回布尔值,请尝试以下操作:

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

解析为
True
。它正在评估字符串ans中的第一个字符是
Y
还是
Y

啊,我明白了,所以它并不像您编写的第二个版本那样明确。正确。这只是实现同样目标的一条捷径。当你越来越习惯python时,它将开始显式。第二种形式不是“显式的”。它是“多余的”。啊,我明白了,所以它不像你写的第二个版本那样明确。正确。这只是实现同样目标的一条捷径。当你越来越习惯python时,它将开始显式。第二种形式不是“显式的”。这是“多余的”。