内置方法与模块
一. 内置函数
1.abs 绝对值函数
res = abs(-1) print(res)
2. round 四舍五入(奇数进偶数舍弃)
res = round(3.69) res = round(3.5) res = round(4.5) res = round(4.51) print(res)
3. sum 计算一个序列的和
res = round(3.69) res = round(3.5) res = round(4.5) res = round(4.51) print(res) # sum 计算一个序列得和 lst =[1,2,3,4] res = sum(lst) print(res) lst = [100,200,20,-3] # max 获取一个序列里边的最大值 res = max(lst) # min 获取一个序列里边的最小值 res = min(lst) print(res) # 其他方法 lst = sorted(lst) maxval = lst[-1] minval = lst[0] print(maxval,minval)
4. max与min
"""return 最终返回的数据和传入到自定义函数中的数据是一致的""" # 练习1 container = [ ("何子豪",23),("李雅琪",19),("王雨涵",18)] def func(n): # print(n) # 返回的是年龄,按照年龄找到最大值 return n[-1] res = max(container,key=func) res = min(container,key=func) print("<====================>") print(res) # 练习2 print("<====================>") container = {"何子豪":100,"李雅琪":200,"王雨涵":300} def func(n): print(container[n]) # 返回的是年龄,按照年龄找到最大值最小值 return container[n] res = max(container,key=func) res = min(container,key=func) print(res)
5. pow 计算某个数值的x次方
res = pow(2,3) # 前2个参数的结果和第三个参数取余 res = pow(2,3,5) print(res)
7.bin 将10进制数据转化为二进制
res = bin(255) print(res)
8. oct 将10进制数据转化为八进制
res = oct(8) print(res)
9. hex 将10进制数据转化为16进制
res = hex(255) print(res)
10 .chr 将ascll编码转换为字符
res = chr(97) print(res)
11 ord 将字符转换为ascll编码
res = ord("a") print(res)
12 eval 将字符串当作python代码执行 (慎用)
strvar = "print(123434343434)" strvar = "a=100" # print(strvar) # eval(strvar) error # exec 将字符串当作python代码执行(功能更强大) (慎用) strvar = "a=100" strvar = """ for i in range(50): print(i) """ exec(strvar)
13 repr 不转义字符输出字符串[等价于元字符串]
pathvar = "D:\notepadd++\t" print(repr(pathvar))
14 hash 生成哈希值
res1 = hash("a") res2 = hash("a") print(res1,res2) # setvar = {"a","b","c"} # setvar = {1,2,3} # print(setvar) with open("笔记1.py",mode="r+",encoding="utf-8") as fp1, open("笔记2.py",mode="r+",encoding="utf-8") as fp2: res1 = hash(fp1.read()) res2 = hash(fp2.read()) if res1 == res2: print("文件内容一致") else: print("文件内容不一致")
二 .数学模块
要先引入 import math
1ceil() 向上取整操作 (对比内置round)
res = math.ceil(3.1) res = math.ceil(-3.5) print(res)
2 .floor() 向下取整操作 (对比内置round)
res = math.floor(4.199) res = math.floor(-4.199) print(res)
3. pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)
res = math.pow(2,3) # math中的pow方法没有三个参数,只有2个; # res = math.pow(2,3,2) error print(res)
4. sqrt() 开平方运算(结果浮点数)
res = math.sqrt(9) print(res) # 3.0
5. fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)
res = math.fabs(-999) print(res)
6. modf() 将一个数值拆分为整数和小数两部分组成元组
res = math.modf(3.567) print(res)
7 .copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)
res = math.copysign(-18,-19) print(res)
8 .fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)
lst = [1,2,3,4] print(math.fsum(lst))
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) print(res) # 二个参数 res = random.randrange(1,7) print(res) # 三个参数 res = random.randrange(1,10,3) # 1 4 7 print(res)
3. uniform() 获取指定范围内的随机小数(左闭右开) 2 <= x < 4
""" a = 4 , b = 2 return a + (b-a) * self.random() return 4 + (-2) * [0,1) 如果是0的情况: 4 如果是1的情况: 2 2 < x <= 4 """ res = random.uniform(2,4) # 2 <= x < 4 res = random.uniform(4,2) # 2 < x <= 4 print(res)
4. choice() 随机获取序列中的值(多选一)
lst = ["耿择时","孙翔宇","家营和","张银"] res = random.choice(lst) print(res) def mychoice(lst): num = random.randrange(0,len(lst)) # 0,4 return lst[num] print(mychoice(lst)) # 优化代码 mychoice = lambda lst : lst[ random.randrange(0,len(lst)) ] print( mychoice(lst) )
5 .sample() 随机获取序列中的值(多选多) [返回列表]
lst = ["耿择时","孙翔宇","家营和","张银"] res = random.sample(lst,2) print(res) # 返回列表
6. shuffle() 随机打乱序列中的值(直接打乱原序列)
lst = [1,2,3,4,45,5,6] random.shuffle(lst) print(lst)
7 . 验证码功能
def yanzhengma(): strvar = '' for i in range(4): num = str(random.randrange(10)) s_c= chr(random.randrange(97,123)) b_c= chr(random.randrange(65,91)) lst = [num,s_c,b_c] strvar += random.choice(lst) return strvar res = yanzhengma() print(res)