注意:以下方法都没有对输入的年月日判断是否正确的语句,所以均须输入正确的年月日,才能返回正确的天数。
方法一:
from functools import reduce
def num(year, month, day):
"""输入某年某月某日,判断这一天是这一年的第几天"""
L1 = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 平年对应月份的天数
L2 = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 闰年对应月份的天数
if month == 1: # 对月份为1的情况进行单独处理
days =day
elif year % 4 == 0 and year % 100 != 0 or year % 400 == 0: # year为普通闰年(能被4整除但不能被100整除的年份)或者世纪闰年(能被400整除的为世纪闰年)的情况
days = reduce(lambda x, y: x + y,L2[:month-1]) + day
else: # year为平年的情况
days = reduce(lambda x, y: x + y,L1[:month-1]) + day
return days
while True: # 这是一个无限循环,只有用户输入q确认后才用break中断,退出循环。
print("告诉我几年几月几日,我将告诉你这一天是这一年的第几天。")
print("输入'q'退出。")
year = input("请输