由于刚刚学习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()
第一次在简书上分享自己的代码,如果有什么不对的地方或更好的解法,还请大家多多提出建议与意见,谢谢!