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

Python回文判断函数逻辑错误:应返回False却返回True

问题分析与修复

你的代码核心问题出在反转字符串的逻辑错误:当前的while循环是从字符串的第一个字符(索引0)开始,逐个把字符追加到reverse_string中,这其实是完全复制了原字符串,根本没有实现反转。所以不管输入什么字符串,input_string和reverse_string都会相等,自然永远返回True。

修复方案

方案1:修正while循环的索引逻辑

把循环起始索引设为字符串的最后一位,从后往前遍历字符,构建真正的反转字符串:

def is_palindrome(input_string):    
    x = len(input_string) - 1
    reverse_string = ""
    while x >= 0:
        reverse_string += input_string[x]
        x -= 1    
    return input_string == reverse_string

方案2:利用Python切片简化代码

Python的字符串切片[::-1]可以直接生成反转后的字符串,代码更简洁高效:

def is_palindrome(input_string):    
    return input_string == input_string[::-1]

测试修改后的代码:

print(is_palindrome("abc"))  # 返回False,符合预期
print(is_palindrome("aba"))  # 返回True,正确识别回文

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 10:10:30