首页 > Python基础教程 >
-
【python】两行代码实现近百年的正反日期查询--20200202
到2020年了。有个日期也火了,记得上一次还是2011年11月2日。为啥捏,因为日期写成数字形式 正反是一样的。
2020年也有一个这样的日期。20200202:2020年2月2日。
于是乎想写一段代码,都有哪些日期是满足这个条件的。
用python 两行代码搞定。
首先导入一个时间包:arrow。
然后就是使用arrow进行转换格式,时间范围,for循环 最后输出
import arrow print([r.format("YYYYMMDD") for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(2120, 1, 15)) if r.format("YYYYMMDD")==r.format("YYYYMMDD")[::-1]]) 结果:
['20011002', '20100102', '20111102', '20200202', '20211202', '20300302', '20400402', '20500502', '20600602', '20700702', '20800802', '20900902', '21011012', '21100112', '21111112', '21200212', '21211212', '21300312', '21400412', '21500512', '21600612', '21700712', '21800812', '21900912', '22011022', '22100122', '22111122', '22200222', '22211222', '22300322', '22400422', '22500522', '22600622', '22700722', '22800822', '22900922']
说实话上边的只是为了,增加噱头。简化来说还是最简单的循环 判断 输出。
import arrow # print([r.format("YYYYMMDD") for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(9999, 1, 15)) # if r.format("YYYYMMDD")==r.format("YYYYMMDD")[::-1]]) # for r in arrow.Arrow.range('day', arrow.get(1900, 1, 1), arrow.get(2300, 1, 15)): start = arrow.get(1900, 1, 1) # 设置开始时间 end = arrow.get(2300, 1, 15) # 设置结束时间 for r in arrow.Arrow.range('day', start, end): t = r.format("YYYYMMDD") #日期格式转换为字符串 t1 = t[::-1] # 字符串翻转 if t1 == t: print(t) 输出结果:
20011002
20100102
20111102
20200202
20211202
20300302
20400402
20500502
20600602
20700702
20800802
20900902
21011012
21100112
21111112
21200212
21211212
21300312
21400412
21500512
21600612
21700712
21800812
21900912
22011022
22100122
22111122
22200222
22211222
22300322
22400422
22500522
22600622
22700722
22800822
22900922
两个结果显示内容不同,两行代码的。将结果放入list中,输出的是列表。第二段代码是单独输出。也可以将结果放入list中。得到相同的结果。
完结。。