1.匿名函数
没有名字的函数
lambda x:函数体
x:参数
函数体:函数功能
返回值:函数体执行后的结果
适合比较简单的逻辑函数函数
max = lambda x,y : x+y max(1,2) #3
2.三元运算
result = "值1" if i in iteams else "值2"
条件成立result = ”值1“,否则result=”值2"
3.生成器函数
与普通函数区别
执行生成器函数时,函数体默认不执行,返回的是一个生成器对象
使用yield关键字定义生成器函数
# 定义 def func1(): print("这是生成器函数") yield "y1" print("1") yield "y2" print("2") # 调用函数,返回的是一个生成器对象而不是函数已经执行 re = func1() # 通过next调用生成器函数 print(next(re)) print(next(re)) 还可以通过for循环调用 for i in re: print(i) ++++++++-----++++++++++++ 这是生成器函数 y1 1 y2
应用场景
可以节省内存开销
1.生成几千万个随机验证码,每执行一次next生成一个随机验证码,边使用边生成
2.redis取数据
import random """ 生成一百万个验证码 """ # 生成器函数 def get_code(): count_num =0 while count_num <= 1000000: yield random.randint(1000,9999) count_num += 1 # 获取验证码 v1 = get_code() print(next(v1)) print(next(v1)) print(next(v1)) +++++++-----++++++ 7943 1741 9673
4.内置函数
函数名 | 作用 | 表达式 |
abs | 取绝对值 | var = abs(-1) |
pow | 指数 | var = pow(2,-1) |
sum | 求和 | var = sum(1,1) |
min | 最小 | var = min([1,2,3,4]) |
max | 最大 | var =max([1,2,3,4]) |
bin | 十转二 | var = bin(10) |
oct | 十转八 | var = oct(10) |
hex | 十转十六 | var = hex(10) |
len | 取长度 | var = len(ls) |
输出到屏幕 | ||
open | 打开 | |
type | 判断类型 | type(1) |
range | 生成整数 | |
enumercate | 循环输出数据和索引 | for num,value enymercate(ls): print(num,value) |
id | 取地址(十进制) | id(10) |
hash | 转换为哈希值 | hash(" i love you") |
help | 查看帮助信息 | help(str) |
zip | 通过公共索引提取元素集合返回一个嵌套后的数据集合 | v1 = zip(l1,l2,l3) for i in v1: print(i) |
callable | 判断是否可执行 | |
input | 获取屏幕输入 | |
sorted | 排序和sort类似,应用范围广,为其它的数据类型也提供排序功能 |
5.推导式
通过一行代码初始化容器数据类型的一些值
lst = [i*2 for i in range(0,10) if i >3 ]
[8, 10, 12, 14, 16, 18]
元组比较特殊,使用推导式后生成一个函数生成器