if语句:

    if 条件1:

        ..

    elif 条件2:

        ..

    else:

        ..

每个条件后面用冒号来表示当满足条件之后要执行的语句.

while循环:

    while 条件:

        ...


    while 条件:

        ...

    else:

        ...


for循环:

    for var in seq:

        ...

    else:

        ...

迭代器有两个基本的方法:iter() 和 next()

    字符串,列表,元组,都可以用于创建迭代对象

    创建迭代对象:iter(列表/字符串/元组)

    可以对迭代对象进行for循环,也可以用next来访问迭代对象中的下一个元素.

函数

    函数的定义:

        由def定义,后面跟函数名称,圆括号(),参数定义在圆括号里,以冒号开心函数体.如下

        def 函数名称(参数列表):

            函数内容

            [return var] #当没有return语句时,函数则返回None

    函数必须在调用之前先定义

可变类型与不可变类型

    string,tuples,numbers是不可修改的对象,list,dict,set是可修改的对象,针对不可修改对象的变量,在函数参数传递时,修改的是对象的值,而不是对象本身。

    参数:

    必需参数,关键字参数,默认参数,不定长参数

    必需参数:参数必须正确的传入顺序,且数量要一样。

    关键字参数:通过参数名来匹配参数值,如:func(age=12,name='2222')

    默认参数:def func(name,age=12),调用时,可值age参数,也可不传。

    不定长参数:def func([arg,] *var_args_tuple),加了星号(*)的变量名,会存放所有未命名的变量参数。

匿名函数:

    用lambda来定义匿名函数

    lambda拥有自己的命名空间,且不能访问表达式之外的参数和全局命名空间里的变量

    语法:

    lambda arg[,arg[,arg....]]:express

    如 lambda arg1,arg2:arg1*arg2. 返回两个参数的乘积

变量作用域:

    作用域有四种:

    L(local)局部

    E(enclosing)闭包函数外的函数中

    G(global)全局

    B(built-in)内建

    变量查找规则L->E->G->B,范围是从小到大的查找

    只有module,class,def lambda才会引入新的作用域。

global与nonlocal:

    当内部作用域要修改外部作用域变量时,要用到global,用global var;来重新声明变量

    修改嵌套作用域的变量时(enclosing作用的范围),要用nonlocal var;来重新声明变量