Python实现回数
题目:回数是指从左向右读和从右向左读都是一样的数,例如 12321,909。请利用 filter()滤掉非回数:
思路:要实现回数判断,主要是将输入的数找到其各个位置的值,然后判断前后相对应的位置是否值相同
代码实现:
一、利用数组(列表实现):
1 # -*- coding: utf-8 -*- 2 def is_palindrome(n): 3 N=[] 4 while n!=0: 5 N.append(n%10) 6 n=n//10 7 return N==N[::-1] 8 output = filter(is_palindrome, range(1, 1000)) 9 print('1~1000:', list(output)) 10 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, 171, 181, 191]: 11 print('测试成功!') 12 else: 13 print('测试失败!')
二、字符串实现
1 def is_palindrome(n): 2 nn = str(n) #转成字符串 3 return nn == nn[::-1] #反转字符串并对比原字符串返回true/false 4 print list(filter(is_palindrome,range(1,1000)))
三、lambda表达式
print list(filter(lambda n : str(n)==str(n)[::-1],range(1,1000))) #str(n)同上
作者:常cc
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!