@[枭]
Python第九、十课
今天讲解了Python的
函数参数类型
变量作用域
函数参数类型
①默认值参数
规则:在定义带有默认值参数的函数时,默认值参数必须全部出现在位置参数右侧,且任何一个默认参数右边都不能出现位置参数。
默认值参数只在第一次调用时进行解释。
e.g.
>>>def f(a=3,b,c=5):
print a,b,c
报错
②关键参数
规则:按照参数名字来传递值。
e.g:
>>>def demo(a,b,c=5):
print(a,b,c)
>>>demo(3,7)
3 7 5
③可变长度参数
规则:
函数前有一个 * 时,代表把可变长度的参数放入一个元组中保存
函数前有两个 * 时,代表把传入的实参打包放入字典中
e.g.
>>>def demo(a,b,c=4,*aa,**bb)
print(a,b,c)
print(aa)
print(bb)
>>>demo(1,2,3,4,5,6,7,8,9,xx='1',yy='2',zz=3)
(1,2,3)
(4,5,6,7,8,9)
{'xx':'1','yy':'2','zz':3}
④return语句
规则:从函数中返回多个值时用 , 隔开,但是返回值不是单个的数据,而是已经打包好的
变量作用域
①分类
在python中,变量作用域被分为局部变量、nonlocal变量和全局变量
②三种变量的规则
局部变量规则:
(一)在函数内定义的普通变量仅对函数内起作用
(二)函数运行结束后在该函数内部定义的局部变量会被自动删除而不可访问
nonlocal变量规则:
(一)函数在外层被修饰过
(二)就近原则
全局变量规则:
(一)使用关键字global进行变量声明
(二)函数运行结束后全局变量仍然存在并且可以访问
(三)函数内只引用某个变量的值而没有为其赋新值,那该变量为全局变量
局部变量如果与全局变量具有相同的名字,那么局部变量会在自己的作用域内隐藏同名的全局变量
③ 用法
e.g.
>>>def a():
def b():
spam="我是局部变量"
def c():
nonlocal spam
spam="我不是局部变量,也不是全局变量"
def d():
global spam
spam="我是全局变量"
>>>spam="原来的值"
>>>b()
>>>print("局部变量赋值后:",spam)
原来的值
>>>c()
>>>print("nonlocal变量赋值后:",spam)
我不是局部变量,也不是全局变量
>>>d()
>>>print("全局变量赋值后:",spam)
我不是局部变量,也不是全局变量
>>>a()
>>>print("全局变量:",spam)
我是全局变量