求助:Palindrome检查函数异常,传入121返回「not palindrome」
回文检查函数异常原因及修复方案
问题原因
你的代码中,参数a是整数类型(如传入的121),而通过str(a)[::-1]得到的b是字符串类型("121")。整数与字符串直接用==比较时,因类型不同永远不会相等,导致输出错误结果。
修复方案
方案一:将整数参数转为字符串后比较
这种方法兼容性更强,能处理字符串形式的回文输入:
def palindrome(a): b = str(a)[::-1] if str(a) == b: print("palindrome") else: print("not palindrome") palindrome(121)
方案二:将反转后的字符串转回整数比较
仅适用于正整数输入场景,若传入负数或非数字参数会报错:
def palindrome(a): b = int(str(a)[::-1]) if a == b: print("palindrome") else: print("not palindrome") palindrome(121)
内容的提问来源于stack exchange,提问作者MUDIT DAHRA
相关产品推荐
相关产品推荐

