Python检测字符串是否为变位词时如何正确实现大写转小写?
变位词检测函数问题修复
错误原因
- Python的字符串属于不可变对象,
str.lower()方法不会修改原字符串,仅返回转换为全小写的新字符串。原代码没有将转换后的结果赋值回原变量,导致大小写转换逻辑完全不生效。 - 代码中
islower()的判断属于冗余逻辑,无论原字符串是否已经是全小写,直接调用lower()转换都不会产生异常,还能避免边界场景的判断遗漏。
修复后代码
# 检测两个字符串是否为变位词的函数 def eh_anagrama(cad1, cad2): # 统一转换为小写,消除大小写对判断的干扰 cad1 = cad1.lower() cad2 = cad2.lower() if sorted(cad1) == sorted(cad2): print("两个字符串是变位词。") else: print("两个字符串不是变位词。")
如果需要保留原英文输出提示,只需将print内的中文替换为原英文内容即可。
内容的提问来源于stack exchange,提问作者João
相关产品推荐
相关产品推荐

