判断正整数是否为回文数
出现了'int' object is not subscriptable的错误,查了一些解释,但是不能理解说定义变量重复,或者说索引错误(但如何判断该数能否索引。错误代码如下
def is_palindrome(num):
"""
判断一个数是不是回文数
:param num: 正整数
:return: 是回文数返回True,不是回文数返回False
"""
# 请在此处添加代码 #
# *************begin************#
num1=num[::-1]
num2=int(num1)
if num == num2:
return True
else:
return False
但奇怪的是,只要加上一个绝对值的函数就可以了?(不知道对函数的名称的表述正不正确)
def is_palindrome(num):
"""
判断一个数是不是回文数
:param num: 正整数
:return: 是回文数返回True,不是回文数返回False
"""
# 请在此处添加代码 #
# *************begin************#
num1=str(abs(num))
num2=num1[::-1]
num3=int(num2)
if num == num3:
return True
else:
return False
谢谢各位的帮助!
你不是加上绝对值函数,你是使用str把整数转换成字符串了,所以自然可以使用[::-1]这种字符串切片操作了。
[::-1] 的操作对象应为:字符串
def is_palindrome(num):
"""
判断一个数是不是回文数
:param num: 正整数
:return: 是回文数返回True,不是回文数返回False
"""
# 请在此处添加代码 #
# *************begin************#
num1=num[::-1]
# print(type(num1))
num2=num1
if num == num2:
print('是回文数')
else:
print('不是')
a = input('请输入一个数:')
# input 接收类型 为 str 类型
is_palindrome(a)