模块和函数

    我们启动Python REPL然后使用下math模块,这个模块提供了一些数学方面的函数:

    函数中包含了一组表达内容的序列,在调用的时候会被执行出来。
    下面我们定义了一个函数,它的作用是打印两条信息:

    1. >>> def do_hello():
    2. ... print("Hello")
    3. ... print("World")
    4. ...
    5. Hello

    确保你在函数中的print表达式前插入了一个tab
    在Python中tabspace是非常重要的,定义一个代码块或多或少都会依赖于这样的结构。
    比如,print表达式被包含在do_hello函数里面时,就必须有一个tab

    1. 定义一个名为add2的函数,它接受两个数字作为参数,返回的值为这两个数字之和。之后定义一个名为add3的函数,它接受3个数字并且返回这三个数字的和。

    2. 定义一个函数,返回接受的两个数字中较大的那个数字。你可以使用if关键字来比较两个数字: https://docs.python.org/3/tutorial/controlflow.html#if-statements

    3. 定义一个名为is_divisible的函数,它接受两个参数(“a”和“b”),如果“a”可以被“b”整除那么返回True否则返回False
      提示: 一个数字可以被另一个数字整除时,它余下的部分为0。你可以使用取模操作符(%)。

    在计算机编程中,递归函数的意思是调用自身。比如一个阶乘函数

    1. f(x) =
    2. { x × f(x 1), otherwise. }

    作为例子,我们传入5,它的计算过程是这样的:

    5的阶乘本质上是5乘4的阶乘…最终,是1(或0)的阶乘也就是1然后结束递归。在Python中,我们可以这样写:

    1. def factorial(x):
    2. if x == 0:
    3. return 1
    4. else:
    5. return x * factorial(x-1)
    1. 写一个阶乘函数并测试几个不同的数据。同时使用计算器来验证其正确性。
    2. 斐波那契数列是一个数字序列,它的每一个数字都是前2个数字之和。请根据以下信息,写出一个递归的斐波那契数列(fib(n))。检查下你最初的几个结果是否与结果对应了:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …