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

如何修改回文字符串判断函数,使其对非字符串输入返回False

修改回文判断函数以支持非字符串输入返回False

很简单,咱们只需要在核心的is_palindrome函数开头加一个类型检查逻辑就行。具体来说,先判断输入是否为字符串类型,如果不是直接返回False,剩下的原有逻辑保持不变就好。

修改后的完整代码

import string

def remove_punctuations(word):
    return "".join(i.lower() for i in word if i in string.ascii_letters)

def reverse(text):
    return text[::-1]

def is_palindrome(text):
    # 新增:检查输入是否为字符串类型,非字符串直接返回False
    if not isinstance(text, str):
        return False
    text = remove_punctuations(text)
    return text == reverse(text)

测试示例

  • 输入数字:is_palindrome(123) → 返回False
  • 输入列表:is_palindrome(["a", "b"]) → 返回False
  • 输入合法回文字符串:is_palindrome("A man, a plan, a canal: Panama") → 返回True
  • 输入非回文字符串:is_palindrome("Hello World") → 返回False

这里用isinstance(text, str)做类型检查是最稳妥的,它能识别字符串以及字符串的子类(如果存在的话),可以覆盖绝大多数实际场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:12:16