自学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: 把离他最近的一层的变量拿过来.不会找全局

原文地址:https://www.cnblogs.com/xiaobai686/p/11638639.html