題目
回數(shù)是指從左向右讀和從右向左讀都是一樣的數(shù),例如12321,909。請利用filter()濾掉非回數(shù):
def is_palindrome(n):
pass
# 測試:(求1000以內(nèi)的回文數(shù))
output = filter(is_palindrome, range(1, 1000))
print(list(output))
思路
1、構(gòu)建一個11開始的整數(shù)序列,無限生成。
2、定義一個篩選函數(shù):
①把整數(shù)換成字符串:str(n)
②切片字符串,判斷是否前后相等,把不想等的篩選掉。
3、定義一個生成器,不斷返回下一個回文數(shù)
4、設置退出循環(huán)的條件:1000以內(nèi)的回文數(shù)
答案:
誰能想到,答案只有一句話?
defis_palindrome(n):
? return n ==int(str(n)[::-1])
①把n轉(zhuǎn)換為str
②[::-1] 切片的知識,意思是將整個字符串反過來
③判斷 n? 是否等于 反過來的切片,如果等于,就是True。