如何修改回文字符串判断函数,使其对非字符串输入返回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
相关产品推荐
相关产品推荐

