我想问的都在代码里了

问题: 输入某年某月某日,判断这一天是这一年的第几天


def isLeapYear(y): # 这里用函数定义有什么好处?我想的是用if
    return (y%400==0 or (y%4==0 and y%100!=0))
DofM=[0,31,28,31,30,31,30,31,31,30,31,30] # 第一个数据为什么是0res=0
year=int(input('Year:'))
month=int(input('Month:'))
day=int(input('day:'))
if isLeapYear(year):
    DofM[2]+=1
for i in range(month):
    res+=DofM[i]
print(res+day)


这是将1到11月存到了列表,列表0位就存0,因为是从下标1开始的,有帮助的话采纳一下哦!

#判断是否是润年的函数
def isLeapYear(y):
    if((y%400==0 or (y%4==0 and y%100!=0))):
        return True
    else:
        return False
#把1到11月对应的天数写进列表中,列表零位存0
months_day = [0,31,28,31,30,31,30,31,31,30,31,30]
res = 0
year,month,day = map(int,input("请输入年月日,中间用逗号隔开:").split(","))
if isLeapYear(year):
    months_day[2] += 1
for i in range(1,month):
    res += months_day[i]
print(res+day)

1.没有好处,一共一句代码非要封装到函数里,典型的为了封装而封装
如果你有2行以上的重复代码,或者虽然只有一句代码但你用的地方特别多而又经常改,那封装成函数会更方便。但没有人规定这种情况下就必须封装成函数。
2.因为月份从1开始,而索引是从0开始,前面补个0是为了让月份和索引能够对齐,你也可以补99,无所谓,反正用不到它

1.函数定义是方便多次调用
2.因为12月用不到

谢谢各位同志们,在你们的指导下我写出来了

res = 0
year = int(input("Year:"))
month = int(input("Month:"))
day = int(input("Day:"))
Month = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
    Month[2] += 1

for i in range(1, month):
    res += Month[i] 
print(res + day)