用python求回数

来源:互联网 发布:躬匠精神知乎 编辑:程序博客网 时间:2024/06/06 02:07

今天学到filter函数,做一道练习题,求回数的,我前前后后差不多用了半个小时才把它弄出来,先是有思路了然后写出来后一直报错,又改改换换,最后其实是某个小问题导致的,每次查这种小问题时都先怀疑是不是思路有问题,其实大部分时候都不是。后来去看别人写的代码,一行就搞定了,最后的最后,我被自己蠢哭了哭哭哭以后还能不能愉快的写代码了?


题目:回数是指从左向右读和从右向左读都是一样的数,例如12321,909。请利用filter()滤掉非回数:


我的解答:

def is_palindrome(n):s=str(n)if len(s)==1:return Trueelse:lst=[c for c in s]new_lst=[]for x in range(len(lst)):new_lst.append(lst[len(lst)-x-1])if (''.join(new_lst))==s:return Trueelse:return Falseoutput = filter(is_palindrome, range(1, 1000))print(list(output))

牛人的解答:

def is_palindrome(n):return str(n)==str(n)[::-1]output = filter(is_palindrome, range(1, 1000))print(list(output))



而且心中一直有个小疑问,什么打印各种形状、杨辉三角等,我之前都做过的题,每次重新去做,还得思考半天,写完后还得调试半天。我这是怎么了?是因为之前做了但是理解的不深导致的吗?可能还是境界不够吧,以后多练练,哪天这种入门小程序题完全不用思考就写出来了,我需要上来记录一下

2 0