You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Higher or Lower纸牌游戏:牌组不完整、play()部分代码未执行问题

问题修复方案

问题1:牌组仅生成Spades一种花色

  • 问题原因:Deck类的build()方法中return self语句缩进错误,当前处于花色遍历的第一层循环内部,代码遍历完第一种花色(Spades)就直接返回结果,不会执行后续三种花色的生成逻辑。
  • 修复方法:调整return self的缩进层级,移到外层花色遍历循环的外部,确保所有花色生成完成后再返回实例。

修改后build()方法代码如下:

def build(self):
    self.cards = []
    for s in ["Spades", "Clubs", "Diamonds", "Hearts"]:
        for v in range(1, 14):
            self.cards.append(Card(s, v))
    # 缩进调整到和for s循环同级,所有花色生成完成后再返回
    return self

问题2:打印电脑猜测语句后代码不执行

  • 问题原因:内层校验用户输入的while answer not in "hl"循环中,从未对answer变量赋值,answer始终是初始值"?",导致内层进入无限死循环,永远无法跳出执行后续抽牌、计分逻辑。
  • 修复方法:在获取到用户输入的合法猜测值后,给answer变量赋值,输入合法即可跳出内层循环。同时原输入语句中多余的format()调用也可一并删除(字符串没有对应占位符,该调用无实际作用)。

修改后内层循环代码如下:

while answer not in "hl":
    Player_guess = str(input("What is your guess: higher or lower (h or l)?\n")).lower()
    # 新增判断:用户输入合法则给answer赋值,用于跳出循环
    if Player_guess in ["h", "l"]:
        answer = Player_guess
    Computer_guess = random.choice(Higher_or_lower)
    print("You guess " + str(Player_guess))
    print("The computer guess " + str(Computer_guess))

内容的提问来源于stack exchange,提问作者Kentta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 15:06:07