自学python day 10 函数的动态参数、命名空间、作用域
作业提升:
s为字符串
s.isalnum() 所有字符都是字母或者数字
s.isalpha() 所有字符都是字母
s.isdigit() 所有字符否是数字
2. for i in range(1,10,3)的用法
从1到10,以步长为3 查找数据 即 1 4 7 10
3. 用Ture 和 False 来判断
4. 三元表达式
a if a > b else b 如果a>b成立 返回前面的a ,不成立返回最后b
今日主要内容
1. 动态参数
位置参数的动态参数: *args *一个
def chi (*food) 可以传入任意的位置参数,#可以接受很多
关键字参数的动态参数 : **kwargs **两个
def func(**kwargs):
print(kwargs)
func(a=1, b=2, c=3) #结果为字典
func(a=1, b=2) 结果: {'a': 1, 'b': 2, 'c': 3} {'a': 1, 'b': 2}
顺序:
位置,*args,默认值,**kwargs
在形参上*聚合, **聚合
在实参上*打散, **打散
2. 命名空间和作用域
命名空间:
1. 内置命名空间: python解释内部运行时的变量函数
2. 全局命名空间: 我们在py文件中直接声明出来的变量,函数
3. 局部命名空间: 在函数内部声明的变量和函数.
加载顺序:内部>全局>局部
取值顺序:内部<全局<局部
作用域:
1.全局作用域:内置+全局
2.局部作用域:局部 #拿到的是就近原则
globals() 查看全局作用域中的名字
locals() 查看当前作用域中的名字
函数的嵌套
3. global和nonlocal
global: 把全局变量拿到局部来用.
nonlocal: 把离他最近的一层的变量拿过来.不会找全局