计算闰年

首先我们需要了解计算闰年的方法,这里参考维基百科的算法。闰年意味着2月份有29天,平年2月份只有 28天,究竟为什么这样会有这种计时法呢?我们之后写文章可以专门总结一下。哈哈,这里就不细说了。

满足以下任意一条的都是闰年,否则就是平年 1. 能被4整除并且不能被100整除 2. 能被400整除的但不能被3200整除

我们先弄清算法之后,就很容易编写程序了。读到这里你有没有灵机一动的感觉,我们肯定需要用到判断语句, if-else的结构。除此之外呢我们在加上一点逻辑判断,就是与或非。那么在Python中与或非很简单, 就是andor!(这个冒号是英文输入法)。

我们先来仔细分析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变量就会发生改变。最终要的一点就是,程序没有唯一的实现方式,虽然你跟我 写的不一样,很可能你写的也是正确的。相信你自己!

思考题

  1. 将一元二次方程改写为函数,输出参数a,b,c,输出方程根的情况。