题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝特别喜欢 2,今年是公元 2020 年,他特别高兴,因为每天日历上都可以看到 2。
如果日历中只显示年月日,请问从公元 1900 年 1 月 1 日到公元 9999 年 12 月 31 日,一共有多少天日历上包含 2。即有多少天中年月日的数位中包含数字 2。
解答:
使用内置函数datetime即可轻松解决,但datetime的年份最大值只能到9999,所以在写循环时要着重注意这一点。
from datetime import *
# 请在此输入您的代码
start = date(1900,1,1) #起始日期
end = date(9999,12,31) #终止日期
s = timedelta(days=1) #日期递增一天
count=0
while start<end: #确定循环条件,因为如果是end+1,循环就会报错,则这里只循环到end-1的那个日期,而且end这一天是包含2这个数字的,所以在输出那里加一即可
if '2' in str(start): #如果包含2这个数字,count+1
count += 1
start += s
print(count+1) #1是end这一天包含2数字,前面循环没有判断end这一个日期,所以手动添加1