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

Python函数问题:为何非指定名称输出大写问候而非小写?

问题解决:条件判断逻辑错误导致的分支异常

你的代码问题出在if语句的条件判断上:

if name == "Batman" or "Black Widow":

这个写法的逻辑等价于(name == "Batman") or ("Black Widow"),非空字符串在布尔判断中会被视为True,所以不管name是什么值,这个条件永远为真,导致所有输入都会走大写问候的分支。

修正后的代码方案

方案一:明确每个判断条件

def hello(name):
    if name == "Batman" or name == "Black Widow":
        print(f"Hello {name.upper()}")
    else:
        print(f"Hello {name.lower()}")
        
hello("Aqua Man")  # 输出:Hello aqua man

方案二:用集合包含判断(更适合扩展)

如果后续需要添加更多特殊名称,用集合判断会更简洁高效:

def hello(name):
    special_names = {"Batman", "Black Widow"}
    if name in special_names:
        print(f"Hello {name.upper()}")
    else:
        print(f"Hello {name.lower()}")
        
hello("Aqua Man")  # 输出:Hello aqua man

两种方案都能正确区分特殊名称和普通名称,传入"Aqua Man"时会输出小写格式的问候。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:20:41