Python每日一练——第5天:闰年问题升级版

前言📢📢

Python每日一练来啦,本文已收录于:《Python每日一练》专栏

此专栏目的在于,帮忙学习Python的小白提高编程能力,训练逻辑思维,每周持续更新中,欢迎免费订阅!!!

在这里插入图片描述



1. 问题描述

输入年月日,输出该日期是否是闰年,并且输出该日期是此年份的第几天

闰年判断条件(两个条件满足任意一个就为闰年):

  • 一、能被4整除,并且不能被100整除
  • 二、能被400整除


    小伙伴们看了问题描述后,一定要自己先练习,再去看博主的代码和解题思路,才能提高自己的编程水平,全靠自觉哟!!!

    欢迎小伙伴们把自己的思路或答案在评论区留言,博主会选一个最优解答进行置顶。
    在这里插入图片描述

2. 算法思路

1.接收用户输入的年月日,创建保存12个月份天数的列表


2.根据年份判断是否是闰年,如果是把二月份设为29天,否则把二月份设为28天


3.根据月份和日期统计是当年的第几天

3. 代码实现

实现代码📝:

"""python每日一练:闰年问题升级版
1.接收用户输入的年月日,创建保存12个月份天数的列表

2.根据年份判断是否是闰年,如果是把二月份设为29天,否则把二月份设为283.根据月份和日期统计是当年的第几天
"""

# 1. 接收用户输入的年月日,创建保存12个月份天数的列表
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))
# 12个月天数列表
date_list = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
count_day = day  # 用来统计第几天

# 2. 根据年份判断是否是闰年,如果是把二月份设为29天,否则把二月份设为28天
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
    print("%s 年是闰年" % year)
    date_list[1]  = 29
else:
    print("%s 年是平年" % year)
    date_list[1] = 28

# 3. 根据月份和日期统计是当年的第几天
for i in range(month - 1):
    count_day += date_list[i]
# 格式化输出
print("%s年:%s月:%s日是当年的第%s天" % (year, month, day, count_day))

运行结果👇:

在这里插入图片描述

在这里插入图片描述

4. 算法升级

使用time模块的strftime函数判断第几天

实现代码📝:

import time

try:
    # 键盘输入日期格式
    a = input('请输入日期(格式:xxxx-xx-xx):')
    # 时间字符串转化为元组
    b = time.strptime(a, '%Y-%m-%d')
except ValueError:
    print('请输入正确的日期格式!')
else:
    b = time.strptime(a, '%Y-%m-%d')  # 时间元组格式化输出
    # print(b)
    # time.struct_time(tm_year=2020, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=2, tm_yday=1, tm_isdst=-1)
    year = b.tm_year
    month = b.tm_mon
    day = b.tm_mday
    count_day = b.tm_yday  # 一年内的一天(001-366)

    if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
        print("%s 年是闰年" % year)
    else:
        print("%s 年是平年" % year)

    print("%s年:%s月:%s日是当年的第%s天" % (year, month, day, count_day))

运行结果👇:
在这里插入图片描述


《100天精通Python从入门到就业》专栏推荐白嫖80gPython全栈视频

《100天精通Python从入门到就业》:本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点订阅限时9.9付费专栏进入千人全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会)!
  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等
    在这里插入图片描述
    在这里插入图片描述
免费资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

评论 91
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁袁袁袁满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值