如何在Python中实现大小写不敏感的回文判断?
修复回文判断函数的大小写问题及代码错误
先看你现有代码里的几个问题:
- 大小写敏感:回文判断应该忽略大小写差异,但原代码直接比较原始字符,导致'M'和'm'被判定为不相等
- 语法错误:Python里布尔值是
True(首字母大写),不是true - 索引错误:循环变量用的是
n,但判断里写了未定义的i - 冗余逻辑:没必要逐字符循环,直接比较字符串和反转后的结果就行
优化后的简洁版本
这个版本直接解决大小写问题,同时让代码更高效:
def isPalindrome(word): # 统一转成小写,消除大小写差异 lower_word = word.lower() # 直接比较原字符串小写版和反转后的版本 return lower_word == lower_word[::-1]
如果要保留逐字符判断的写法(优化后)
要是你想保留循环逻辑,也可以这么改,顺便优化效率:
def isPalindrome(word): lower_word = word.lower() reversed_word = lower_word[::-1] palindrome = True for n in range(len(lower_word)): if lower_word[n] != reversed_word[n]: palindrome = False # 发现不相等直接退出循环,不用继续判断 break return palindrome
测试一下:isPalindrome('Mom')会返回True,isPalindrome('Hello')返回False,完美解决大小写问题。
内容的提问来源于stack exchange,提问作者Lehlohonolo Moloi
相关产品推荐
相关产品推荐

