今天咱们继续来learn老潘微博里的一个python小案例。
今天的案例是寻找对称数,所谓对称数就是数值的第一位和倒数第一位相同,数值的第二位和倒数第二位相同,以此类推。
老潘微博的原题目稍微简单点,这里做了个简单的发散:一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上第4次出现了对称数(95859之后的第4个),该数字仍为五位数。问该车的速度是多少?前4个对称数是多少?
#老潘系列"""一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上第4次出现了对称数(95859之后的第4个),该数字仍为五位数。问该车的速度是多少?前4个对称数是多少?"""#由于里程数仍然为五位数,因此可以利用range函数从95860遍历至100000#利用count变量作为计数器,记录出现对称数的次数,初始值为0count=0for i in range(95860,100000): #为了使用切片来得到里程数的不同索引值元素,这里将里程数转换为字符串 string=str(i) #分别提取对称位的元素,利用if语句判定 #每次得到符合条件里程数后,计数器+1,并输出指定内容 #注意当找到第四个对称数后,用break终止for循环,否则会继续执行for循环 if string[0]==string[-1] and string[1]==string[-2]: count+=1 print("第%d个对称里程数为%s" % (count,string)) if count==4: print("该车的车速为 {0} km/h".format((i-95859)/2)) break
欢迎关注「颜犀设」知乎专栏和知识星球。