计算闰年
首先我们需要了解计算闰年的方法,这里参考维基百科的算法。闰年意味着2月份有29天,平年2月份只有 28天,究竟为什么这样会有这种计时法呢?我们之后写文章可以专门总结一下。哈哈,这里就不细说了。
满足以下任意一条的都是闰年,否则就是平年 1. 能被4整除并且不能被100整除 2. 能被400整除的但不能被3200整除
我们先弄清算法之后,就很容易编写程序了。读到这里你有没有灵机一动的感觉,我们肯定需要用到判断语句,
if-else
的结构。除此之外呢我们在加上一点逻辑判断,就是与或非。那么在Python
中与或非很简单,
就是and
、or
、!
(这个冒号是英文输入法)。
我们先来仔细分析if
的判断条件,第一个语句的判断条件是
if year % 4 == 0 and year % 100 != 0
年份对4取余数等于0,并且 年份对100取余数不等于0,小伙伴们是不是发现很简单呢。
第二个条件先想一分钟,再来看我给出的
if year % 400 == 0 and year % 3200 != 0
我们再把这两个条件用或(or)合并起来就得到程序了。
year = 1200
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0 and year % 3200 != 0):
print(year, "是闰年")
else:
print(year, "是平年")
等等,我们这节内容主要是函数怎么编写,于是我们改写成函数的输入输出程序
def is_leap(year):
flag = "平年"
if (year % 4 == 0 and year % 100 != 0) or \
(year % 400 == 0 and year % 3200 != 0): # \ 表示程序的换行
flag = "闰年"
return flag
print(is_leap(1100))
小结
仔细的读者发现,改为函数以后,这两段程序其实有一点差别,第一个程序我们直接使用if-else
,
第二段程序我们定义flag
变量初始值就是平年,如果if
条件没有满足,就直接返回平年,满足
了if
条件flag
变量就会发生改变。最终要的一点就是,程序没有唯一的实现方式,虽然你跟我
写的不一样,很可能你写的也是正确的。相信你自己!
思考题
- 将一元二次方程改写为函数,输出参数a,b,c,输出方程根的情况。