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

如何修复Python中用反向range实现回文数判断的代码错误?

你的代码存在两处逻辑错误:

错误1:回文数判断函数逻辑错误

isPalindrome函数中,结果判断和return语句缩进错误,被放在了for循环内部:

  • 循环只会执行1次就直接返回结果,没有完成完整的字符串反转拼接。例如判断数字121时,第一次循环只拿到最后一位字符'1',就会直接判断'121' == '1'返回False,完全不符合回文数判断逻辑。

修正后的函数代码:

def isPalindrome(n):
    str_n = str(n)
    reverse = ""
    for i in range(len(str_n)-1, -1, -1):
        reverse = reverse + str_n[i]
    # 待字符串完全反转后再做判断返回
    result = str_n == reverse
    return result

错误2:菜单分支遍历逻辑错误

选项3的代码中break语句缩进错误,被放在了遍历0-999的for循环内部:

  • 无论当前遍历的数字是不是回文数,第一次循环结束后都会直接跳出遍历循环,最终只会输出数字0就停止运行,不会遍历所有1000以内的数字。

修正后的分支代码:

elif option == 3:
    print("PALINDROMES")
    for i in range(0, 1000):
        if isPalindrome(i):
            print(i)
    # 此处不需要break,直接删除即可,若保留需要移出for循环外

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:27:05