【问题标题】:simple question on dice poker in pythonpython中骰子扑克的简单问题
【发布时间】:2011-03-29 23:29:58
【问题描述】:

我正在学习构建骰子扑克游戏的教科书示例。下面是一段我不太明白的代码,但它确实有效。那么在run方法下的while循环中,第二个条件就是TextInterface类中的wantToPlay方法必须为真,对吗?但是当我查看 wantToPlay 方法时,没有布尔结果,即没有给出它是否为真。有人可以解释这是如何工作的吗?

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"

【问题讨论】:

    标签: python poker dice


    【解决方案1】:

    这会返回一个布尔值:

    return ans[0] in "yY"
    

    可以这么说:

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

    【讨论】:

    • 啊,我明白了,它不像你写的第二个版本那么明确。
    • 正确。这只是实现相同目标的捷径。
    • 随着你越来越习惯 python,它会开始看起来很明确
    • 第二种形式不是“显式”的。它是“冗余的”。
    【解决方案2】:

    它确实返回一个布尔值,试试这个:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-26
      • 2014-05-12
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多