16. 函数:def func1( ):
1、函数中一旦执行完return,函数执行过程立即终止。
2、return 的返回值是: ret = func1( )。默认返回值None。
3、函数只有调用的时候,函数体才会执行。
4、参数: 小括号( )中是形式参数,可以有多个参数。调用时传递的是实际参数,如果不指定参数,则实际参数和形式参数的顺序是 一 一对应的。默认
参数可以不传递,采用默认值,也可以传递一个值。默认参数必须放到参数列表的末尾。例如:def fuc1(x, y, z = 'abc'):
5、动态参数 *:def fuc2(*args): 默认将传入的参数放到元组中。
print(args)
fuc2('alex',11,'sb') 打印的是 ('alex',11,'sb') 元素组成的元组。如果 l1 = [ 1,'alex','sb'] 则fuc2(l1,11)生成([1,'alex','sb'],11)
如果fuc2(*l1) 生成(1,'alex','sb')
6、动态参数**:def fuc3(**args): 默认将传入得参数放到字典中,fuc3(**{'k1':'v1','k2':'v2'}
7、万能参数:def fuc4(*args ,**kwargs) 注意一个*的在前面。fuc4(11,22,33,44,k1='v1',k2='v2')
8、补充1:
python传递参数,传的是引用,如 def f1(a1) : a1.append(99) ,l1 = [11,22,33] f1(l1) print(l1)则会显示 [11,22,33,99] 不是[11,22,33] 。
9、补充2: 全局变量,所有作用域都可读 。对全局变量重新赋值,需要global。如:
NAME = 'alex'
def f1(): def f2():
global NAME print(NAME)
name = 123
print(NAME)
f2()打印 123.
特殊:对于列表,字典可以修改,NAME =[11,22] ,全局变量潜规则采用大写。
17、以后采用函数式编程:def login():
def register():
def main():
main()
18、定义一个函数def 不写函数块的话,要写一个pass占位符,如果什么都不写就会报错。
19、三目运算,三元运算:
即if else 的简写: name = 'alex' if 1 == 1 else 'SB' ==> 等价于
if 1 == 1:
name = 'alex'
else:
name = 'SB'