如何修改Python的quieter_please函数以满足指定需求?
问题分析与修正
原代码的核心错误有两个:
- 调用字符串的
islower()和isupper()方法时,漏掉了括号()。直接写str.islower是引用方法本身,不是执行方法得到的布尔结果,导致逻辑判断完全错误。 - 逻辑冗余且偏离需求:任务只要求判断是否全大写,不需要额外判断是否全小写或混合大小写。
修正后的代码
def quieter_please(s): if s.isupper(): return s.lower() return s # 测试示例 print(quieter_please("HELLO")) # 输出 hello print(quieter_please("Hello")) # 输出 Hello print(quieter_please("hello")) # 输出 hello
关键说明
- 方法调用修正:必须使用
str.isupper()来获取字符串是否全大写的布尔值,同理str.lower()是转小写的方法。 - 简化逻辑:只需要一个判断——如果字符串全大写,就返回小写版本;否则直接返回原字符串,覆盖所有非全大写的情况(包括全小写、混合大小写)。
内容的提问来源于stack exchange,提问作者Pipoh Pjiiui
相关产品推荐
相关产品推荐

