2 Python:上机练习——计算y年m月有几天

题目:
给定y和m,计算y年m月有几天?
集成开发环境:
思路:
创建一个月份和天数对应的字典
先判断m!=2
满足条件,非二月,直接通过字典查找y年m月的天数
不满足,是二月,再判断是否是闰年
是闰年:29天,不是闰年:28天
代码:

2  Python:上机练习——计算y年m月有几天

文章插图
y=int(input('y年:'))m=int(input('m月:'))mydict={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}if m!=2:D=mydict[m]print('%d年%d月有%d天'%(y,m,D))else:if y%4==0:print('%d年%d月有29天'%(y,m))else:print('%d年%d月有28天'%(y,m))
运行显示:
关于print函数
此处运用了数据的格式化输出
print('%d年%d月有29天'%(y,m))
'%d年%d月有29天’为格式控制符
%为标记转换说明符的开始
(y,m)是转换说明符
C语言中写法是
2  Python:上机练习——计算y年m月有几天

文章插图
print('%d年%d月有29天',(y,m))
注意区分
也可以直接输出多个变量,输出显示变量之间会有空格(sep缺省是空格)
print(y,'年',m,'月有28天')
运行显示:
也可以用elif语句进行判定
y=int(input('y年:'))m=int(input('m月:'))mydict={1:31,3:31,5:31,7:31,8:31,10:31,12:31,4:30,6:30,9:30,11:30}if m!=2:D=mydict[m]print('%d年%d月有%d天'%(y,m,D))elif y%4==0:print('%d年%d月有29天'%(y,m))else:print('%d年%d月有28天'%(y,m))
问题:
字典设计的时候,多个key对应的value值都相等
【2Python:上机练习——计算y年m月有几天】有什么简单的写法吗?