Python實現回數
阿新 • • 發佈:2021-07-08
題目:回數是指從左向右讀和從右向左讀都是一樣的數,例如 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 出處:https://www.cnblogs.com/changcc/
-------------------------------------------
個性簽名:獨學而無友,則孤陋而寡聞。做一個靈魂有趣的人!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,博主在此感謝!
萬水千山總是情,打賞一分行不行,所以如果你心情還比較高興,也是可以掃碼打賞博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!