题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天。闰年在月份大于2时输出需考虑多加一天。
代码:
#!/usr/bin/python3
#输入年月日
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
#判断有哪几个完整的月
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 < month <= 12 and (0 < day <= 31):
sum = months[month - 1]
else:
print ('data error')
sum += day
leap = 0
#判断是否为闰年
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
sum += 1
print ('{0}月{1}日是{2}年中的第{3}天。'.format(month,day,year,sum))
总结:合理利用数组,算出当月之前的有多少天,在加上本月的天数,着重分析闰年的条件,利用if语句进行判断。