函数
定义
1.基本结构
def func_name():
func_code
2.三种形式
无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印
有参:需要根据外部传进来的参数,才能执行相应的逻辑,比如统计长度,求最大值最小值
空函数:设计代码结构
3.函数在定义阶段只检测语法,不执行代码
调用
func_name()
列表参数调用/关键字参数调用(关键字参数在后)
注意:
1.函数先定义,再调用
2 函数的定义与变量的定义类似,没有事先定义变量,而直接引用变量,会报错没有事先定义函数,而直接调用,就相当于在引用一个不存在的变量名
参数:
#形参:在定义函数时,括号内的参数成为形参
#特点:形参就是变量名
# def foo(x,y): #x=1,y=2
# print(x)
# print(y)
#实参:在调用函数时,括号内的参数成为实参
#特点:实参就是变量值
# foo(1,2)
#在调用阶段实参(变量值)才会绑定形参(变量名)
#调用结束后,解除绑定
返回值:return的返回值没有类型限制
1. 没有return:返回None,等同于return None
2. return 一个值:返回该值
3. return val1,val2,val3:返回(val1,val2,val3)
1. 函数名+函数体
2. 输入(参数)/输出
3. 参数默认值(默认参数必须在后)
def func_name(param1, param2, param3, ..., param_m=default_m, ..., param_n=default_n):
func_code1
func_code2
...
func_coden
return return_value
func_name(value1, value2, value3, ..., value_m-1, [value_m, ..., value_n])
LGB原则
L => local(本地)
G => global (全局)
B => builtin (内置)
在访问一个变量是python找的顺序是L->G->B
可变参数
列表/字典
def func_name1(*args, **kwargs):
print args, kwargs
def func_name2(*args):
print args
def func_name3(**kwargs):
print kwargs
函数也是变量
range(0, 10)中所有元素的平方组成的一个list
rt = []
for i in range(10):
rt.append(i * i)
[i * i for i in range(10)]
range(0, 10)中所有是偶数的元素的平方组成的一个list
rt = []
for i in range(10):
if i % 2 == 0:
rt.append(i * i)