每日一道Python算法题——输入月份和日期,判断这是一年的第几天?

思路

将月份和对应天数写入到一个字典
输入月份(month),和日期(days
将小于月份(month)的所有天数累加求和存入(num)变量,再加上当月的日期(days)即可得到预期结果。

代码

dic_date = {
     
1:31,2:28,3:31,4:30,5:31,6:30,
7:31,8:31,9:30,10:31,11:30,12:31
}    

def day_count(month,days):
    num = 0 
    for i in range(month+1):
        if i in dic_date.keys():
            num += dic_date[i]
    return num + days

day_count(3,23)

答案为 (31+28+31+23=113)

113

若考虑到该年否为闰年(leap year),则代码如下:

def day_count(year,month,days):
    num = 0 
    for i in range(month+1):
        if i in dic_date.keys():
            num += dic_date[i]
    if (year%4 == 0) and (year%100!=0) or (year%400 == 0):
        num += 1
    return num + days
day_count(1996,3,28)
119

每日一道Python算法题——输入月份和日期,判断这是一年的第几天?_第1张图片

你可能感兴趣的:(Python,算法,入门,基础教程,学习笔记)