欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 判断日期是一年中的第几天 (填空题)

程序员文章站 2024-03-16 14:26:34
...

分析:(第一部分)
date = input(“输入年月日(yyyy-mm-dd):”) ##输入年月日

y,m,d = (int(i) for i in date.split(’-’)) ## lambda表达式, 分为两部分,一是int(i)
指明是整数类型,二是:for i in date.split(’-’)),
前面规定y,m,d = 年,月,日 的形式,所以用date.split(’-’))
改成 年-月-日 的形式。i是指date里面的数据即(int(m), int(y),
int(d)) 。

(第二部分)
for i in range(1,int(m)):##判断月份,指输入的月份在不在(1,?)的区间,即填int(m)

接着判断输入的月份是否为2
if i = =2:
if y % 400==0 or (y % 100 != 0 and y % 4 == 0): ##判断闰年平年
提示:“公历闰年能被4整除且不能被100整除的为闰年(y % 100 != 0 and y % 4 == 0),或,世纪年能被400整除的则是闰年(y % 400 == 0)

            sum +=29      
        else:
            sum+=28
    ##判断是否为腊月
    elif(i in special):        ## 用if~elif ~else可满足多种条件的筛选
        sum+=31
    else:
        sum+=30

##初始值sum=0,sun+=的形式是一个累加的过程,即i在哪个条件下成立,则sum
去累加谁。

(第三部分):

sum = sum+d ##叠加上述第sum,并加上输入第day
print("这一天是一年中的第%d天"%sum)  ##%d ==%sum

if name == ‘main’: ##调用函数
main()

Python 判断日期是一年中的第几天 (填空题)

完整代码如下:

def main():
date = input(“输入年月(yyyy-mm-dd):”)
y,m,d = (int(i) for i in date.split(’-’))
sum =0
special = (1,3,5,7,8,10)

for i in range(1,int(m)):##判断月份即填int(m)
    if i==2:
        ##判断闰年平年
        if y % 400==0 or (y % 100 != 0 and y % 4 == 0): 
            sum +=29
        else:
            sum+=28
    ##判断是否为腊月
    elif(i in special):
        sum+=31
    else:
        sum+=30


sum = sum+d ##叠加上述第sum,并加上输入第day
print("这一天是一年中的第%d天"%sum)

if name == ‘main’:
main()