python函数之内置函数
python的内置函数
abs 绝对值函数
print(abs(-1)) print(abs(100))
round 四舍五入
奇进偶不进 n.5的情况特定发生
res = round(3.87) res = round(4.51) # res = round(2.5)打印结果 2 # res = round(3.5) 打印结果4 res = round(6.51) print(res)
sum 计算一个序列得和
lst = [1,2,3,4,34] res = sum(lst) print(res) total = 0 for i in lst: total += i print(total)
max 获取一个序列里边的最大值
min 获取一个序列里边的最小值
lst = (-100,1,2,3,4,34) res = max(lst) res = min(lst) print(res)
max / min 的高阶函数的使用方式
tup = ( ("赵万里",100) , ("赵沈阳",101) , ("孟凡伟",99) ) def func(n): # print(n) # 按照年龄找到最小值元组 return n[-1] res = min(tup,key=func) print(res) res = max(tup,key=func) print(res) dic = {"赵万里":100,"赵沈阳":200,"孟凡伟":-5000} def func(n): # 如果是字典,默认传递的是键 # print(dic[n]) return abs(dic[n]) res = min(dic,key=func) res = max(dic,key=func) print(res)
pow 计算某个数值的x次方
如果是三个参数,前两个运算的结果和第三个参数取余
print(pow(2,3)) print(pow(2,3,7)) print(pow(2,3,4)) print(pow(2,3,5))
range 产生指定范围数据的可迭代对象
# 一个参数 for i in range(3): # 0 1 2 print(i) # 二个参数 for i in range(3, 8): # 3 4 5 6 7 print(i) # 三个参数 # 正向操作 for i in range(1,9,5): # 1 6 留头舍尾 print(i) # 逆向操作 for i in range(9,1,-3): # 9 6 3
bin 将10进制数据转化为二进制
print(bin(8))
oct 将10进制数据转化为八进制
print(oct(8))
hex 将10进制数据转化为16进制
print(hex(16))
chr 将ASCII编码转换为字符
print(chr(65))
ord 将字符转换为ASCII编码
print(ord("A"))
eval和exec在和第三方用户交互时候,谨慎使用
eval 将字符串当作python代码执行
strvar = "print(123)" strvar = "int(15)" print(strvar) res = eval(strvar) print(res,type(res))
# strvar = "a=3" error eval的局限性 不能创建变量
# eval(strvar)
exec 将字符串当作python代码执行(功能更强大)
strvar = "a=3" exec(strvar) print(a) strvar = """ for i in range(10): print(i) """ exec(strvar)
repr 不转义字符输出字符串
strvar = "D:\nython32_gx\tay14" res = repr(strvar) print(res)
input 接受输入字符串
res = input("输入内容") print(res , type(res))
hash 生成哈希值 文件校验
with open("ceshi1.py",mode="r",encoding="utf-8") as fp1, open("ceshi2.py",mode="r",encoding="utf-8") as fp2: res1 = hash(fp1.read()) res2 = hash(fp2.read()) if res1 == res2: print("文件校验成功") else: print("文件校验失败")
数学模块 import math
ceil() 向上取整操作 (对比内置round) ***
res = math.ceil(3.01) res = math.ceil(-3.45) print(res)
floor() 向下取整操作 (对比内置round) ***
res = math.floor(3.99) res = math.floor(-3.99) print(res)
pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)
结果为浮点数,必须是两个参数
res = math.pow(2,3) # res = math.pow(2,3,3) error print(res)
sqrt() 开平方运算(结果浮点数)
res = math.sqrt(9) print(res)
fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)
res = math.fabs(-1) print(res)
modf() 将一个数值拆分为整数和小数两部分组成元组
res = math.modf(3.897) print(res)
copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)
res = math.copysign(-12,-9.1) print(res)
fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)
lst = [1,2,3,4] res = math.fsum(lst) print(res)
圆周率常数 pi ***
print(math.pi)
随机模块
random() 获取随机0-1之间的小数(左闭右开) 0<=x<1
res = random.random() print(res)
randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值) ***
# 一个参数 res = random.randrange(3) print(res) # 0 1 2 # 二个参数 res = random.randrange(3,6) # 3 4 5 print(res) # 三个参数 res = random.randrange(1,9,4) # 1 5 print(res) res = random.randrange(7,3,-1) # 7 6 5 4 print(res)
randint() 随机产生指定范围内的随机整数 (了解)
res = random.randint(1,3) # 1 2 3 # res = random.randint(3,5,1) error print(res)
uniform() 获取指定范围内的随机小数(左闭右开) ***
res = random.uniform(0,2) # 0<= x < 2 print(res) res = random.uniform(2,0) print(res) """ 原码解析: a = 2 , b = 0 return 2 + (0-2) * (0<=x<1) x = 0 return 2 取到 x = 1 return 0 取不到 0 < x <= 2 return a + (b-a) * self.random() """
choice() 随机获取序列中的值(多选一) **
lst = ["孙凯喜","王永飞","于朝志","须臾间","含税小"] res = random.choice(lst) print(res) def mychoice(lst): index_num = random.randrange(len(lst)) return lst[index_num] print(mychoice(lst)) # lambda 改造 mychoice = lambda lst : lst[ random.randrange(len(lst)) ] print(mychoice(lst))
sample() 随机获取序列中的值(多选多) [返回列表] **
tup = ("孙凯喜","王永飞","于朝志","须臾间","含税小") res = random.sample(tup,3) print(res)
shuffle() 随机打乱序列中的值(直接打乱原序列) **
lst = ["孙凯喜","王永飞","于朝志","须臾间","含税小"] random.shuffle(lst) print(lst)
验证码效果
# 验证码里面有大写字母 65 ~ 90 # 小写字母 97 ~ 122 # 数字 0 ~ 9 def yanzhengma(): strvar = "" for i in range(4): # 大写字母 b_c = chr(random.randrange(65,91)) # 小写字母 s_c = chr(random.randrange(97,123)) # 数字 num = str(random.randrange(10)) # 把可能出现的数据都放到列表中,让系统抽一个 lst = [b_c,s_c,num] # 抽完之后累计拼接在字符串strvar当中 strvar += random.choice(lst) # 循环四次拼接终止,返回随机码 return strvar res = yanzhengma() print(res)