- 百道Python入门级练习题(新手友好)第三回合——求月份天数
- 百道Python入门级练习题(新手友好)第七回合——求x**3
- 百道Python入门级练习题(新手友好)第四回合——求矩阵各列最
- 百道Python入门级练习题(新手友好)第九回合——split方
- 百道Python入门级练习题(新手友好)第一回合——矩阵乘法
- 百道Python入门级练习题(新手友好)第十回合——遍历列表
- 百道Python入门级练习题(新手友好)第五回合——换散币
- 百道Python入门级练习题(新手友好)第二回合——找对称数
- 百道Python入门级练习题(新手友好)第八回合——求二次方程
- 百道Python入门级练习题(新手友好)第六回合——五位数数位
题目描述
【问题描述】
编写程序输入年(year)、月(month),输出该年份该月的天数。
公历闰年的计算方法为:
年份能被4整除且不能被100整除的为闰年
或者,年份能被400整除的是闰年。
12
【输入描述】
共一行。有两个整数,第一个是年份,第二个是月份。年份和月份之间以一个空格隔开。
【输出描述】
输出该年该月的天数。
【输入示例】
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])12345678910
第10行,[yue - 1]是因为列表索引是从0开始的。
考虑闰年情况的解法
我们用一个函数来判断一个年份是否是闰年。Python学习资料或者需要代码、视频加这个群吧548加上377还有875 都在这里了。
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])1234567891011121314151617
与只考虑平年的代码版本相比,有两点改动:
- 定义了判闰年的函数。见1到5行。
- 增加了15和16行。
其他行没有任何改动。
小结
这里,分两步完成任务。第一步只考虑平年,第二步加了闰年情形。这种做法值得提倡。
用列表来保存各月的天数。使得输入的月份可作为索引来得出天数。
网友评论