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

检测回文数的Python代码输入121时失效,求故障原因

问题原因及修复方案

错误根源

你的代码存在类型不匹配的问题:

  • var1是通过int()转换后的整数类型,比如输入121时,var1 = 121(整数)
  • num = str(var1)[::-1]是把整数转成字符串后反转,得到的是字符串类型,即"121"(字符串)

Python中整数和字符串属于不同数据类型,哪怕内容完全一致,直接用==比较也会返回False,这就是输入121时输出错误的核心原因。输入123时输出看似正确,只是巧合——整数123和字符串"321"本身就不相等,逻辑本质是错误的。

两种修复方法

方法1:将反转结果转回整数

修改反转代码,把字符串结果转为整数,保证两边类型一致:

var1 = int(input("enter a number:"))
num = int(str(var1)[::-1])  # 新增int()转换,统一为整数类型

if var1 == num:
    print("its a palindrome")
else:
    print("its not a palindrome")

方法2:全程用字符串处理(更简洁)

直接把输入当作字符串处理,避免类型转换的麻烦:

var1 = input("enter a number:")
num = var1[::-1]

if var1 == num:
    print("its a palindrome")
else:
    print("its not a palindrome")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 01:34:59