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

Posted 小袁ITSuper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 = 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))

运行结果👇:

5. 如何让刷题变得更加高效呢?

1. 编程小白选手

很多刚入门编程的小白学习了基础语法,却不知道语法的用途,不知道如何加深映像,不知道如何提升自己,这个时候每天刷自主刷一道题就非常重要(百炼成神),可以去牛客网上的编程初学者入门训练。该专题为编程入门级别,适合刚学完语法的小白练习,题目涉及编程基础语法,基本结构等,每道题带有练习模式和考试模式,可还原考试模式进行模拟,也可通过练习模式进行练习。

链接地址牛客网 | 编程初学者入门训练

2. 编程进阶选手

当基础练习完已经逐步掌握了各知识要点后,这个时候去专项练习中学习数据结构、算法基础、计算机基础等。先从简单的入手,感觉上来了再做中等难度,以及较难的题目。这三样是面试中必考的知识点,我们只有坚持每日自己去多加练习,拒绝平躺持续刷题,不断提升自己才能冲击令人满意的公司。

链接地址牛客网 | 专项练习

速度上号,大家一起冲击大厂,有疑问评论区留言解答!!!

以上是关于Python每日一练——第5天:闰年问题升级版的主要内容,如果未能解决你的问题,请参考以下文章

C语言每日一练——第90天:青蛙跳台阶(升级版)

C语言每日一练——第126天:佩奇借书问题

C语言每日一练——第147天:兔子产子问题

Python每日一练(牛客新题库)——第12天:循环语句

Python每日一练——第1天:水仙花数

机试常见问题 关于平年闰年的判断问题