两种解法:
Topic source第一种解法在数值大于1000之后就不对了。只判断了外面一层是相同的就返回了,里面还没有判断,只有在1000以内有效,需要改一下:
def is_palindrome(n):
m=str(n)
num = 0
for i in range(len(m)//2+1):
if m[i]==m[-i-1]:
num = num + 1
else:
return False
if num == len(m)//2+1:
return True
pass
output1 = filter(is_palindrome, range(1000, 2000))
print('1000~2000:', list(output1))
def is_palindrome(n):
m =str(n)
num = 1
for i in range(int(len(m)//2)):
if m[i] == m[-i-1]:
pass
else:
num = 0
return num
- 1
小桥流水_cc
第一种:
# -*- coding: utf-8 -*-
#回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()筛选出回数:
def is_palindrome(n):
m=str(n)
for i in range(len(m)//2+1): #加1避免对于个位数的回数range(0)无法计算的问题
if m[i]==m[-i-1]:
return True
else:
return False
pass
第二种:
# -*- coding: utf-8 -*-
def is_palindrome(n):
m=str(n)
if m == m[::-1]: #使用字符串翻转的形式(切片):
return True
else:
return False