Python判断字符串首尾相同的first_last函数始终返回True问题排查
问题代码错误原因分析
- 多余的
for循环:不需要遍历字符串的每个字符,直接对整段输入字符串取首尾即可。循环中拿到的char是单个字符,任意单个字符的第0位和最后一位都是它本身,所以char[0] == char[-1]永远成立,只要输入字符串非空,第一次循环就会直接返回True,和预期逻辑完全不符。 - 空字符串判断位置错误:空字符串不会进入
for循环,写在循环内部的空字符串判断永远不会触发。 - 逻辑顺序错误:应当优先判断输入是否为空,再执行首尾字符的比较逻辑。
修正后的代码
def first_last(message): # 空字符串直接返回True if not message: return True # 直接比较首尾字符 return message[0] == message[-1]
测试结果
使用你提供的测试用例运行,输出完全符合预期:
print(first_last("night")) # 输出False print(first_last("nun")) # 输出True print(first_last("")) # 输出True
内容的提问来源于stack exchange,提问作者Himanshu kumar
相关产品推荐
相关产品推荐

