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;来重新声明变量