day16.内置方法与模块
一、内置方法
1、abs 绝对值函数
res = abs(-100) print(res)
2、round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!)
"""特点:奇进偶不进""" res = round(4.51) # res = round(4.5) # 4 # res = round(3.5) # 4 print(res)
3、sum 计算一个序列得和

lst = [-100,20,90,35] res = sum(lst) print(res) def func(lst): total = 0 for i in lst: total += i return total print(func(lst))
4、max min 获取一个序列里边的最大值 最小值

lst = [-100,20,90,35] # max 获取一个序列里边的最大值 res = max(lst) print(res) # min 获取一个序列里边的最小值 res = min(lst) print(res) # 自定义方法 lst_new = sorted(lst) print(lst_new) maxval = lst_new[-1] minval = lst_new[0] print(maxval,minval)
高级用法

lst = [("aa",81),("bb",82),("cc",71),("dd",70)] def func(n): # print(n) return n[-1] # 按照年龄返回 """ 70 => ("dd",70) 71 => ("cc",71) 81 => ("aa",81) 82 => ("bb",82) """ res = max(lst,key=func) res = min(lst,key=func) # res = max(lst) print(res) print("<=========>") dic = {"aa":-100,"bb":45,"cc":-70} def func(n): # print(n) return abs(dic[n]) res = max(dic,key=func) print(res) # 改写成lambda表达式 res = max(dic,key = lambda n : abs(dic[n])) print(res) max min高级用法
5、pow 计算某个数值的x次方

"""pow(参数1,参数2[,参数3]) 参数3代表的是取余数""" res = pow(2,3) print(res) res = pow(2,3,3) # 2 res = pow(2,3,4) # 0 print(res)
6、range 产生指定范围数据的可迭代对象

'''range(start,end,step)''' for i in range(1,11,3): print(i) # 1 4 7 10 for i in range(11,0,-3): print(i) # 11 8 5 2 ...
7、bin oct hex 将10进制数据转化为二进制 八进制 十六进制

# bin 将10进制数据转化为二进制 res = bin(255) print(res) # oct 将10进制数据转化为八进制 res = oct(87) print(res) # hex 将10进制数据转化为16进制 res = hex(255) print(res)
8、chr 将ASCII编码转换为字符 ord 将字符转换为ASCII编码

# chr 将ASCII编码转换为字符 res = chr(97) print(res) # ord 将字符转换为ASCII编码 res = ord("A") print(res)
9、eval 将字符串当作python代码执行

strvar = "print('深圳的天气可真的太热了,受不了')" # strvar = "a = 90" error 不能执行 eval(strvar)
10、exec 将字符串当作python代码执行(功能更强大)

"""注意点:在与用户交互的时候,慎用""" strvar = "a = 90" exec(strvar) print(a) strvar = """ for i in range(10): print("你是大傻瓜") """ exec(strvar)
11、repr 不转义字符输出字符串

strvar = "E:\nython31_gx\day17" print(repr(strvar))
12、input 接受输入字符串 (永远接受的是字符串)

""" name = input("what`s your name") print(name) """
13、hash 生成哈希值

"""相同的两个数据经过哈希算法运算得出的结果一定相同""" res1 = hash("abc") res2 = hash("abc") print(res1,res2)

""" 1.文件校验 2.密码加密 """ with open("ceshi1.txt",mode="r+",encoding="utf-8") as fp: strvar1 = fp.read() res1 = hash(strvar) with open("ceshi2.txt",mode="r+",encoding="utf-8") as fp: strvar2 = fp.read() res2 = hash(strvar) # print(res1 == res2)
二、数字模块
import math
1、ceil() 向上取整操作 (对比内置round)*

res = math.ceil(4.9) res = math.ceil(-3.5) print(res)
2、floor() 向下取整操作 (对比内置round)*

res = math.floor(3.9) res = math.floor(-3.8) print(res)
3、pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)

res = math.pow(2,3) # res = math.pow(2,3,3) error # 只有2个参数 print(res) # 结果一定是小数:8.0
4、sqrt() 开平方运算(结果浮点数)*

res = math.sqrt(9) print(res) # 结果一定是小数:3.0
5、fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)

res = math.fabs(-99) print(res) # 99.0
6、modf() 将一个数值拆分为整数和小数两部分组成元组*

res = math.modf(13.45) print(res) # (0.4499999999999993, 13.0)
7、copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)*

res = math.copysign(-13,-1) print(res) # 返回一个小数
8、fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)

lst = [1,2,3,4,6] res = math.fsum(lst) print(res) # 返回一个小数
9、圆周率常数 pi*

res = math.pi print(res)
三、random 随机模块
import random
1、random() 获取随机0-1之间的小数(左闭右开) 0<= x <1

res = random.random() print(res)
2、randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值) **

# 一个参数 res = random.randrange(5) # 0~4 # 二个参数 res = random.randrange(2,8) # 2~7 # 三个参数 res = random.randrange(1,10,3) # 1,4,7 print(res)
3、randint() 随机产生指定范围内的随机整数 (了解)

res = random.randint(3,4) # 3,4 # res = random.randint(3) error # res = random.randint(3,7,2) error # 3 5 7 print(res)
4、uniform() 获取指定范围内的随机小数(左闭右开)

res = random.uniform(1,3) # 1<=x<3 小数 # 源码 # return a + (b-a) * self.random() """ a=3,b=1 3 + (1-3) * x = 0 => 3 3 + (1-3) * x = 1 => 1 1<x<=3 """ res = random.uniform(3,1) print(res)
5、choice() 随机获取序列中的值(多选一)

lst = ["aa","bb","cc","dd","ee"] res = random.choice(lst) print(res) def mychoice(lst): num = random.randrange(len(lst)) # 0 1 2 3 4 return lst[num] res = mychoice(lst) print(res) # lambda 表达式 func = lambda lst : lst[random.randrange(len(lst))] print(func(lst))
6、sample() 随机获取序列中的值(多选多) [返回列表]

lst = ["aa","bb","cc","dd","ee"] res = random.sample(lst,1) res = random.sample(lst,2) print(res)
7、choices() 随机获取序列中的值(多选多) [返回列表] 指定参数k

lst = ["aa","bb","cc","dd","ee"] res = random.choices(lst,k=2) print(res)
8、shuffle() 随机打乱序列中的值(直接打乱原序列)

lst = ["aa","bb","cc","dd","ee"] random.shuffle(lst) print(lst)
9、验证码

def yanzhengma(): # 验证码当中含有小写字母,大写字母,数字 # 小写字母:97~122 strvar = "" # 随机抽4次 for i in range(4): s_char = chr(random.randrange(97,123)) # 大写字母:65~90 b_char = chr(random.randrange(65,91)) # # 0~9 num = str(random.randrange(10)) lst = [s_char,b_char,num] strvar += random.choice(lst) return strvar res = yanzhengma() print(res)
四、序列化模块 pickle
""" 把不能够直接存储的数据变得可存储,这个过程叫做序列化 把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化 php serialize unserialize 在文件中存储的数据只能是字符串 或者是 字节流,不能是其他数据类型 如果想要存储,需要序列化. pickle模块可以序列化一切数据类型 """
import pickle
1、列表可以直接写入文件吗?

import pickle lst = ["aa","bb","cc"] # 错误案例 with open("ceshi0727.txt",mode="w",encoding="utf-8") as fp: fp.write(lst) # 只有字符串可以使用encode 和 decode 转换字节流 lst.encode() error
2、容器类型数据可以被序列化

#dumps 把任意对象序列化成一个bytes res = pickle.dumps(lst) print(res) #loads 把任意bytes反序列化成原来数据 lst = pickle.loads(res) print(lst,type(lst))
3、函数可以序列化

def func(): print("我是最帅的!") # 序列化 res = pickle.dumps(func) print(res) # 反序列化 func = pickle.loads(res) func()
4、迭代器可以序列化

序列化 it = iter(range(10)) res = pickle.dumps(it) # 反序列化 it = pickle.loads(res) for i in it: print(i)
5、dump、load 与 dumps、loads文件操作

#dump 把对象序列化后写入到file-like Object(即文件对象) lst = ["aa","bb","cc"] with open("0728.txt",mode="wb") as fp: # dump(数据,文件对象) pickle.dump(lst,fp) #load 把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据 with open("0728.txt",mode="rb") as fp: res = pickle.load(fp) print(res,type(res)) dump load

lst = ["aa","bb","cc"] res = pickle.dumps(lst) with open("0729.txt",mode="wb") as fp: fp.write(res) with open("0729.txt",mode="rb") as fp: res = fp.read() print(res) lst = pickle.loads(res) print(lst , type(lst)) dumps loads
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现