python基础之匿名函数,内建函数,高阶函数(8)

表达式:

表达式是指变量和操作符(或叫运算符)的组合。
Python代码由表达式和语句组成,并由Python解释器负责执行。它们的主要区别是表达式的结果一定是一个值,而语句表示的是一个动作,而不是生成或者返回一个值(如调用,for,else,pass,break,continue,def,import,from等)。

lambda表达式

  • 是函数的另外一种表示方式而已。本质上还是一个函数

  • 变形金刚:

  • 人型状态:函数 (功能丰富)

  • 汽车状态:lambda表达式(功能简单)

格式:
变量名 = lambda 参数,参数… : 返回值

def func(name,sex):
    return name,"是",sex,"的"
res = func("你","我")
print(res)


res = lambda name,sex:name+"是"+sex+"的"
res1 = res("你","我")
print(res1)
#lambda表达式自带return

#lambda 函数里可以使用分支结构吗?可以,但是必须只能用单行分支结构的形式
def func(sex):
    if sex == "男":
        return "带把的"
    else:
        return "仙女降世"
res = func("男")
print(res)

res = lambda sex:"带把的" if sex == "男" else "仙女降世"
res2 = res("男")
print(res2)

注意:
    lambda表达式功能比较单一,只能实现简单的数据运算或者判断,无法使用循环或者复杂的操作
    所以lambda常用于数据过滤

内建函数:

  • 系统启动python的时候就加载并且可以使用的函数。
类型转换相关:
    int()   将其他数据类型转换为整型
    float() 将其他数据类型转换为浮点型
    bool()  将其他数据类型转换为布尔值
    complex()   将其他数据类型转换为复数
    list()  创建空列表,或者将其他数据类型转换为列表
    tuple() 创建空元组,或者将其他数据类型转换为元组
    dict()  创建空字典,或者将其他数据类型转换为字典
    str()   将其他数据类型转换为字符串

变量相关函数:
    id()    获取数据的id标识
    type()  获取数据的类型字符串
    print() 打印护具
    locals()    打印当前环境中的所有变量,常用于检测某个变量是否声明,结果是字典

数学相关的函数:
#abs()   获取一个数据的绝对值

print(abs(-5))
    
#sum()   计算一个容器的数据的和
#str不可以作为参数,字典如果作为参数的话,限定键的值是 num类型,值不限定

list1 = {1:"你好",3:4}
res = sum(list1)
print(res)

#max()   获取容器数据的最大值
#max 实际做的对比是ascii码的对比

str1 = [1,2,3,40,5]
res = max(str1)
print(res)

#min()   获取容器数据的最小值

str1 = [1,2,3,40,5]
res = min(2,3,4,5,6)
print(res)

#pow()   计算一个数值的N次方

print(pow(2,3))

#round() 对一个数值进行四舍五入操作
    注意:round函数操作时,如果是N.5的数值,采取N奇数进一,N偶数舍弃的操作

num = 4.5
res = round(num)
print(res)

num = 3.5
res = round(num)
print(res)

  • 进制转换函数:

  • bin() 将数值转换为2进制字符串
    变量 = bin(数值)

  • oct() 将数值转换为8进制字符串
    变量 = oct(数值)

  • hex() 将数值转换为16进制字符串
    变量 = hex(数值)


ascii码转换相关(了解):
    A-Z     65-90
    a-z     97-122
    0-9     48-57
    
    
#chr()   将ascii编码转换为字符

print(chr(101101))

#ord()   将字符转换为其对应的ascii码

print(ord('年')

高阶函数:

  • 能够把函数当成参数传递的就是高阶函数 (sorted map reduce filter )

sorted(iterable,reverse=False,key=函数)

  • 功能: 排序
  • 运行原理:把可迭代数据里面的数据,一个一个拿到函数里面进行处理,按照return的结果进行排序,得到一个新的列表
    参数:
  • iterable:可迭代数据(容器类型数据,range对象,迭代器)
  • reverse(可选) :是否反转 默认False 不反转 , True 反转
  • key(可选) :函数 自定义 或 内置函数
  • 返回值:排序后的结果(新的列表)
tuple1=(1,2,3,6,4,5)
res=sorted(tuple1,reverse=True,key=lambda x:x%2)
print(res)
结果:[1 3 5 2 6 4]余数相同的值按原数据顺序排列

def func(x):
    return x%2
tuple1=(1,2,3,6,4,5)
res=sorted(tuple1,reverse=True,key=func)
print(res)

map(func,iterable)

  • map() 函数是python内置的高阶函数,对传入的可迭代对象里的每一个元素进行处理,返回一个新的处理之后的迭代器

  • 功能: 把可迭代数据里面的数据,一个一个拿到函数里面进行处理,得到一个迭代器并返回。

  • 参数: func 函数
    iterable 可迭代的数据(容器类型数据,range对象,迭代器)
    返回值: 迭代器

def func(m):
    return m*m
res=map(func,range(1,6))
print(list(res))

reduce(func,iterable)

  • reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。

  • 使用方法:from functools import reduce

  • 功能:
    一次性从iterable拿出两个值,扔到func里面做运算,得出一个计算结果
    然后,把这个计算结果和iterable里面的第三个数据,继续扔到func里面做运算,以此类推
    即:不停地从iterable里面拿数据,直到运算结束为止

  • 参数:
    func : 内置函数 或 自定义函数
    iterable:可迭代的数据 (容器类型数据,range对象,迭代器)

  • 返回值: 最终的结果

from functools import reduce
def func(m,n):
    return m*n
res=reduce(func,range(1,5))
print(res)

filter(func, iterable)

  • 功能: 过滤数据 (return True 保留数据,return False 舍去数据)

  • 接收两个参数,第一个为函数,第二个为可迭代对象,可迭代对象的每个元素作为参数传递给函数进行判断,
    然后返回 True 或 False,最后将返回 True 的元素放到迭代器中。

  • 参数:
    func : 判断函数
    iterable: 可迭代的数据(容器类型数据,range对象,迭代器)

  • 返回值:
    迭代器

def func(x):
    return x%2
res=filter(func,range(1,6))
print(list(res))

#结果为1 3 5 ,因为2 4 对2的余数是0,Bool值是Flase 数据被删除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值