顺子日期 蓝桥杯

问题描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?

from datetime import * #导入datetime库
day1 = datetime(2022,1,1)#设置第一天的日期
res = 0#用来记录顺子日期的个数
for i in range(1,366):
  s = "%2d%02d%02d"%(day1.year,day1.month,day1.day)#转换成字符串
  day1+=timedelta(days=1)#timedelta有三种:days,seconds。microseconds
  if '012' in s or '123' in s or '234' in s or '345' in s or '456' in s or '567' in s or '678' in s or '789' in s:
    res+=1
print(res)

涉及到的python知识:

%d是普通的输出了整形数

%2d是将数字按宽度为2,采用右对齐方式输出,若数据位数不到2位,则左边补空格。

%02d,和%2d差不多,只不过左边补0

%-2d将数字按宽度为2,采用左对齐方式输出,若数据位数不到2位,则右边补空格

Python timedelta()函数存在于datetime库中,该函数通常用于计算日期差,也可以用于Python中的日期操作。这是执行日期操作的最简单方法之一,主要用于做时间加减。

你可能感兴趣的:(python有用知识,#,时间日期相关,蓝桥杯,python)