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

Python初学者如何精简判断颜色混合逻辑的多重if分支代码?

三原色混合程序精简方案

你可以用排序后颜色元组做字典键的方式,完全替换掉所有冗余的if分支,同时天然满足输入顺序不影响结果的要求,精简后代码如下:

mix_rules = {
    ('red', 'red'): 'Red',
    ('blue', 'red'): 'Purple',
    ('red', 'yellow'): 'Orange',
    ('blue', 'blue'): 'Blue',
    ('blue', 'yellow'): 'Green',
    ('yellow', 'yellow'): 'Yellow'
}

c1 = input("Choose a primary color: ").lower()
c2 = input("Choose another primary color: ").lower()

print(mix_rules.get(tuple(sorted([c1, c2])), "Invalid"))

逻辑说明

  • 不管用户输入两个颜色的顺序如何,sorted()都会把两个颜色按字母序排列,比如red+blue和blue+red排序后都会得到['blue', 'red'],和字典里的键完全匹配,不需要再写正反两种判断条件
  • 字典的get()方法会自动尝试取值,如果输入的颜色组合不在规则里,直接返回默认值Invalid,不需要额外写分支判断非法输入
  • 额外去掉了多余的str()转换,因为input()的返回值默认就是字符串类型,不需要额外转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 09:42:03