一天是某年的第几天,python

由于刚刚学习Python,这几天编写了一个小小的代码,如果有什么有问题的地方,请大家多多指教。例题如下:

输入某年某月某日,判断这一天是这一年的第几天。输入分三行,分别是年、月、日。输出一行,即该天是这一年的第几天。

样例输入:

2017

1

1

样例输出:

1

这是我编写的代码:

# -*- coding: utf-8 -*-

def error():#确定报错函数

    print "Invalid input!"

    exit(0)

def f(x):#判断闰年

    if x % 4 != 0:

        return 0

    else:

        if x % 100 != 0:

            return 1

        else:

            if x % 400 == 0:

                return 1

            else:

                return 0

def get_days(m, y):#确定每一个月有几天

    days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    days[1] += f(y)#对闰年和平年进行统一

    return days[m-1]

def main():

    y = int(raw_input("year: "))

    if (y < 0):#报错

        error()

    m = int(raw_input("month: "))

    if (m >= 13) or (m <= 0):#报错

        error()

    d = int(raw_input("day: "))

    if (d <= 0) or (d > get_days(m, y)):#报错

        error()

    ans = 0

    l = 1

    while l < m:

        ans += get_days(l, y)#按月份累计天数

        l += 1

    ans += d#将本月的天数进行累加

    print ans

if __name__ == '__main__':

    main()

第一次在上分享自己的代码,如果有什么不对的地方或更好的解法,还请大家多多提出建议与意见,谢谢!

你可能感兴趣的:(一天是某年的第几天,python)