Python之函数

谁都会走 提交于 2019-12-05 20:38:40

1. 函数参数

(1)形参:函数定义时的参数

(2)实参:函数调用时的参数

(3)收集参数:

    普通收集参数:*args,收集多余的普通参数,组成一个元组

    关键字收集参数:**kw,收集多余的关键字参数,组成一个字典

(4)命名关键字参数:函数定义时放在 * 号后面,调用时必须指定关键字实参;(*,abc)abc是命名关键字参数

(5)* 和 ** :打包和解包

  函数定义处:打包(收集参数,放到元组或字典中)

  函数调用处:解包(把容器类型里的数据,一个个拿出来传递给函数的形参)

(6)形参声明的顺序:

  普通参数 > 默认参数 > 收集参数 > 命名关键字参数 > 关键字收集参数

(7)对于任何函数,都可以使用 def func(*args,**kw)来获取所有的参数

 

2. 内置函数

abs:绝对值

round:四舍五入

sum:求和

max:求最大值

min:求最小值

pow:n次方

range:产生指定范围的可迭代对象

 

bin:将十进制转成二进制

oct:将十进制转成八进制

hex:将十进制转成十六进制

 

chr:将二进制字节流转成字符串

ord:将字符串转成二进制字节流

 

eval:将字符串当做Python代码执行

exec:将字符串当做Python代码执行

 

repr:不转义字符输出字符串

input:接收输入的字符串

hash:生成哈希值

 

3. 全局变量和局部变量

  全局变量:函数外部的变量,作用范围:整个文件

  局部变量:函数内部的变量,作用范围:仅函数内部

  内置函数:内建命名空间

关键字:

  globals():返回字典,存放全局作用域所有内容

  locals():返回字典,存放当前作用域的所有内容

  global:关键字:声明或修改全局变量

  nonlocal:关键字:修改局部变量(当前函数上一层的局部变量)

4. LEGB原则(就近原则)

变量的调用顺序采用LEGB原则

B -- Builtin(Python);Python内置模块的命名空间

G -- Global(module);函数外部所在的命名空间

E -- Enclosing function locals;外部嵌套函数的作用域

L -- Local(function);当前函数内的作用域

依据就近原则,从上往下,从里到外依次寻找

5. 闭包

# 获取闭包函数使用的变量 __closure__,cell_contents

(1)定义:内函数使用外函数的局部变量,并且外函数把内函数返回出来的方法叫闭包;返回的内函数叫闭包函数。

(2)特点:内函数使用了外函数的局部变量,外函数的局部变量与内函数发生绑定,延长该变量的生命周期

(3)意义:闭包可以优先使用外函数中的变量,并对闭包中的值起到了封装保护的作用,外部无法访问。

 

6. lambda表达式

  定义:用一句话表达只有返回值的函数。

  语法:

    lambda 参数 :返回值

# (1)没有参数的 lambda 表达式
def func():
    return "abc"
func = lambda : "abc"
res = func()
print(res)

# (2)有参数的 lambda 表达式
def func(num):
    return num ** 2
func = lambda num : num ** 2
res = func(3)
print(res)

"""
三目运算符:
    真区间值  if  条件表达式  else  假区间值
"""

# (3)带有判断条件的 lambda 表达式
def func(n):
    if n % 2 == 0:
        return "偶数"
    else:
        return "奇数"
func = lambda n : "偶数" if n % 2 == 0 else "奇数"
res = func(3)
print(res)

 

7. 迭代器

(1)能被 next 方法调用,并且不断 。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!