1.穷举法

枚举所有可能性,直到得到正确的答案或者尝试完所有值。
穷举法经常是解决问题的最实用的方法,它实现起来热别容易,并且易于理解。

2.for循环

for语句一般形式如下:
    for variable in sequence:
        code block
for后面的变量被绑定到序列中的第一个值,并执行下面的代码块,然后变量被赋值给序列中的第二个值,在此执行代码块。该过程一直继续,知道穷尽这个序列或者执行到代码中的break语句。

绑定变量的值通常由内置函数range生成,他会返回一系列整数。
range接受三个整数参数:START、stop、step。

3.函数

在Python中,函数定义如下
    def name of function(list of formal parameters):
        body of function
def是个保留字,告诉Python要定义一个函数;
函数名后边中的一系列名称是函数的形式参数,使用函数时,形参在函数调用时被绑定到事迹参数;
函数体是任何一段Python代码,但是有个特殊的return语句,只能用在函数体中。

函数调用是个表达式,和所有表达式一样,它也有一个值,这个值就是被调用函数返回的值

关键字参数和默认值

在Python中,两种方法可以将形参绑定到实参
    1、位置参数:实参按照形参的位置传值
    2、关键字参数:可以在实参列表中以任意顺序出现
    注意:关键字参数放在非关键字参数后边是不合法的

4.作用域

实参和形参名称可以一样,但他们并不是同一个变量,每个函数都定义了一个命名空间,也称为作用域,形参作用域只在函数体内。
1>在最顶层,比如shell层,有一个符号表会跟踪记录这一层所有的名称定义和他们当前的绑定;
2>调用函数时,会建立一个新的符号表(常称为栈帧)。如果函数内又调用一个函数,就在建立一个栈帧。
3>函数结束时,它的栈帧也随之消失。

全局变量作用在当前文件中。

5.斐波那契数

def fib(n):
if n ==0 or n == 1:
    return 1
else:
    return fib(n-1) + fib(n-2)

for i in range(10):
    print('fib of ',i ,'=',fib(i))

运行结果:
fib of  0 = 1
fib of  1 = 1
fib of  2 = 2
fib of  3 = 3
fib of  4 = 5
fib of  5 = 8
fib of  6 = 13
fib of  7 = 21
fib of  8 = 34
fib of  9 = 55