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

Python嵌套if实现纸牌游戏:作业问题求助

解决方案

你的代码已经完成了点数的判断,但缺少花色识别和结果整合输出。根据作业规则,我们可以通过区间判断点数+模运算判断花色的方式,把if总数控制在13个以内,同时满足所有要求:

思路说明

  • 点数部分:将连续4个编号对应同一个点数,用>=和<=的区间判断替代多个or,并用elif链减少冗余判断,总共只需要9个判断(1个if + 8个elif)。
  • 花色部分:每个点数的4个编号对应4种花色,通过num % 4的结果直接映射花色,仅需3个判断(1个if + 2个elif),加上点数的9个,总if数为12,远低于13的上限。
  • 最后整合点数和花色,输出要求的纸牌名称、花色、点数。

完整代码

num = int(input('Enter a number: '))

# 确定点数
rank = ""
if num >= 0 and num <= 3:
    rank = "6"
elif num >= 4 and num <= 7:
    rank = "7"
elif num >= 8 and num <= 11:
    rank = "8"
elif num >= 12 and num <= 15:
    rank = "9"
elif num >= 16 and num <= 19:
    rank = "10"
elif num >= 20 and num <= 23:
    rank = "vale"
elif num >= 24 and num <= 27:
    rank = "queen"
elif num >= 28 and num <= 31:
    rank = "king"
elif num >= 32 and num <= 35:
    rank = "tus"

# 确定花色
suit = ""
if num % 4 == 0:
    suit = "梅花"
elif num % 4 == 1:
    suit = "方块"
elif num % 4 == 2:
    suit = "红桃"
else:
    suit = "黑桃"

# 输出结果
card_name = f"{rank} of {suit}"
print(f"纸牌名称: {card_name}")
print(f"花色: {suit}")
print(f"点数: {rank}")

规则符合验证

  1. 仅使用了if/elif和算术/比较运算符,无while或自定义函数。
  2. 总if关键字数量为12,未超过13的上限。
  3. 没有使用36个独立if,通过区间和模运算大幅减少判断次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 12:35:22