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

整数回文检测程序无法识别非整数输入的解决方法求助

解决方案

核心逻辑说明

  • 首先input()函数的返回值默认都是字符串类型,无法直接通过类型判断筛选整数,需要用异常捕获的方式尝试将输入内容转为整数:转换成功就是合法整数,转换失败就触发非整数的提示并终止程序。
  • 只要int()转换抛出ValueError,就说明输入内容无法被识别为整数,包含float格式、布尔值、普通字符串的输入都会触发这个错误。
  • 校验通过后再用原输入字符串做回文判断,逻辑和你原有写法的判断规则保持一致。

修改后完整代码

def Palindrome(n):
    return n == n[::-1]

n = input("Please enter an integer: ")

# 新增输入校验逻辑
try:
    # 尝试将输入转为整数,失败就会触发ValueError
    int(n)
except ValueError:
    print("The input is not an integer")
    # 终止程序运行
    exit()

ans = Palindrome(n)

if ans:
    print("The number " + n + " is a palindrome")
else:
    print("The number " + n + " is NOT a palindrome")

可选优化

如果需要过滤带前导零的非标准整数输入(比如输入0121,实际对应整数是121,但字符串判断会认为不是回文),可以在校验阶段补充判断:将输入转整数后再转回字符串,和原输入对比,如果不一致也判定为非法输入即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:48:00