Python入门100道习题(6)——求月份天数

博客围绕编写Python程序计算指定年、月的天数展开。先给出题目描述,包含输入输出要求及示例。接着介绍解法,先给出只考虑平年的情况,后考虑闰年,通过定义判闰年函数等改动实现。最后小结,提倡分两步完成任务,用列表保存各月天数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述

【问题描述】
编写程序输入年(year)、月(month),输出该年份该月的天数。

公历闰年的计算方法为:

年份能被4整除且不能被100整除的为闰年
或者,年份能被400整除的是闰年。

【输入描述】
共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。

【输出描述】
输出该年该月的天数。

【输入示例】
2017 11

【输出示例】
30

只考虑平年情况的解法

下一节我们会考虑闰年情况。你会发现,只要一点点改动,就能实现闰年的处理。

#1. 输入年份月份
ny_str = input()  #"2017 11"
nian, yue = ny_str.split()  #"2017"-->nian, "11" --> yue
nian = int(nian)
yue = int(yue)
#print("nian:", nian, "yue:", yue)

#2.输出月份的天数
yue_ts = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
print(yue_ts[yue - 1])

第10行,[yue - 1]是因为列表索引是从0开始的。

考虑闰年情况的解法

我们用一个函数来判断一个年份是否是闰年。

def is_runnian(nian):
    #闰年:1. 被4整除,不被100整除 2. 被400整除
    if (nian % 4 == 0 and nian % 100 != 0) or nian % 400 == 0:
        return True
    return False
#1. 输入年份月份
ny_str = input()  #"2017 11"
nian, yue = ny_str.split()  #"2017"-->nian, "11" --> yue
nian = int(nian)
yue = int(yue)
#print("nian:", nian, "yue:", yue)

#2.输出月份的天数
yue_ts = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if is_runnian(nian):
    yue_ts[1] = 29
print(yue_ts[yue - 1])

与只考虑平年的代码版本相比,有两点改动:
1. 定义了判闰年的函数。见1到5行。
2. 增加了15和16行。
其他行没有任何改动。

小结

  1. 这里,分两步完成任务。第一步只考虑平年,第二步加了闰年情形。这种做法值得提倡。
  2. 用列表来保存各月的天数。使得输入的月份可作为索引来得出天数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值