表达式:
表达式是指变量和操作符(或叫运算符)的组合。
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 数据被删除