思路分析:
1、当数长度为1表示为10以内的数,此类数均属于回数,所以均返回True
2、当数长度大于1,此时需分长度%2是否为0,,如87与121不同处理,主要是截取数长度的后一半值与前一半值进行对比
3、最后通过filter过滤函数得到符合函数要求的列表值
def is_palindrome(num):
if isinstance(num,int):
listTmp=list(str(num))
if len(listTmp)>=2:
l=int(len(listTmp)/2)
s1=listTmp[:l]
if len(listTmp) % 2 == 0:
s2=listTmp[l:]
else:
s2 = listTmp[l+1:]
s2.reverse()
return s1==s2
elif len(listTmp)==1:
return True
# 测试:
output = filter(is_palindrome, range(1, 1000))
print('1~1000:', list(output))
if list(filter(is_palindrome, range(1, 200))) == [1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99, 101, 111, 121, 131, 141, 151, 161, 1