文章目录
- 1、python的内置函数
-
- 1 abs 绝对值函数
- 2 round 四舍五入 得到整形
- 3 sum 计算一个序列的和
- 4 max 获取一个序列里边的最大值
- 5 min 获取一个序列里边的最小值
- 6 pow 计算某个数值的x次方
- 7 range 产生指定范围数据的可迭代对象
- 8 bin 将10进制数据转化为二进制
- 9 oct 将10进制数据转化为八进制
- 10 hex 将10进制数据转化为16进制
- 11 chr 将ASCII编码转换为字符 就好比根据索引获取字符串
- 12 ord 将字符转换为ASCII编码,就相当于获取某个字符串的索引
- 13 eval 将字符串当作python代码执行
- 14 exec 将字符串当作python代码执行(功能更强大)
- 15 repr 不转义字符输出字符串
- 16 input 接受输入字符串
- 2、数学模块
- 3、 随机模块
1、python的内置函数
total = 0
for i in lst:
total += i
print(total)
4 max 获取一个序列里边的最大值
5 min 获取一个序列里边的最小值
lst = (-100,1,2,3,4,34) res = max(lst) res = min(lst) print(res)
运行运行
#max / min 的高阶函数的使用方式,跟sorted用法一样。按照什么排序就返回什么
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)
字典,默认传的是键。我们可以自定义返回字典的值,返回什么就按什么排序。平时我们自己设置高阶函数,也可以根据传的值来改写返回值
传什么,返回什么,取最大值,最小值,依赖传的值的比较。根据return返回值比较
绝对值最大的是孟凡伟
6 pow 计算某个数值的x次方
如果是三个参数,前两个运算的结果和第三个参数取余
print(pow(2,3)) print(pow(2,3,7)) print(pow(2,3,4)) print(pow(2,3,5))
运行运行
7 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
print(i)
8 bin 将10进制数据转化为二进制
print(bin(8)) 0b
9 oct 将10进制数据转化为八进制
print(oct(8)) 0o
10 hex 将10进制数据转化为16进制
print(hex(16)) 0x
二进制,八进制,十六进制表示的数,打印出来自动打印成十进制
11 chr 将ASCII编码转换为字符 就好比根据索引获取字符串
print(chr(65))
运行运行
12 ord 将字符转换为ASCII编码,就相当于获取某个字符串的索引
print(ord("A"))
运行运行
####eval和exec在和第三方用户交互时候,谨慎使用;
13 eval 将字符串当作python代码执行
strvar = "print(123)" strvar = "int(15)" print(strvar) res = eval(strvar) print(res,type(res))
运行运行
#strvar = "a=3" error eval的局限性 不能创建变量 #eval(strvar)
运行运行
14 exec 将字符串当作python代码执行(功能更强大)
慎用,当确定执行结果后再用
strvar = "a=3"
exec(strvar)
print(a)
strvar = “”"
for i in range(10):
print(i)
“”"
exec(strvar)
到目前为止,创建变量有5种,a=1 a,b = 1,2 a=b=1 a=globals() a[‘b’]=3 exec(“a=3”)
15 repr 不转义字符输出字符串
strvar = "D:\nython32_gx\tay14" res = repr(strvar) print(res)
运行运行
16 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(“文件校验失败”)
字符串类型数据hash,每次hash值不同。Number,元祖hash值是固定的
这种适合小文件,大文件会把内存撑爆
2、数学模块
import math
运行运行
1 ceil() 向上取整操作
(对比内置round) *** 不管小数是多少,直接向上进位
res = math.ceil(3.01)
res = math.ceil(-3.45)
print(res)
2 floor() 向下取整操作
(对比内置round) ***
res = math.floor(3.99)
res = math.floor(-3.99)
print(res)
3 pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)
"""结果为浮点数,必须是两个参数"""
res = math.pow(2,3)
#res = math.pow(2,3,3) error
print(res)
4 sqrt() 开平方运算(结果浮点数)
res = math.sqrt(9)
print(res)
5 fabs() 计算一个数值的绝对值
(结果浮点数) (对比内置abs)
res = math.fabs(-1)
print(res)
6 modf() 将一个数值拆分为整数和小数两部分组成元组
res = math.modf(3.897)
print(res)
7 copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)
不用管第一个数的符号正负,直接将第二个数的符号赋给第一个数
res = math.copysign(-12,-9.1)
print(res)
8 fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)
lst = [1,2,3,4]
res = math.fsum(lst)
print(res)
9 圆周率常数 pi ***
计算圆得面积,周长等需要调用π,这个常量。只能通过math.pi来调出
print(math.pi)
3、 随机模块
import random
运行运行
1 random()
获取随机0-1之间的小数(左闭右开) 0<=x<1
res = random.random()
print(res)
2 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)
3 randint() 随机产生指定范围内的随机整数 (了解) 头尾全包括
res = random.randint(1,3) # 1 2 3
#res = random.randint(3,5,1) error 只能包含两个参数
print(res)
4 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()
5 choice()
随机获取序列中的值(多选一) 可用于字符串,列表,元祖**
lst = ["孙凯喜","王永飞","于朝志","须臾间","含税小"]
res = random.choice(lst)
print(res)
def mychoice(lst):
index_num = random.randrange(len(lst))
return lst[index_num]
print(mychoice(lst))
从字符串中随机选一个
6 lambda 改造
mychoice = lambda lst : lst[ random.randrange(len(lst)) ]
print(mychoice(lst))
7 sample()
随机获取序列中的值(多选多) [返回列表] **
tup = ("孙凯喜","王永飞","于朝志","须臾间","含税小")
res = random.sample(tup,3) #可以控制随机选的个数
print(res)
8 shuffle() 随机打乱序列中的值(直接打乱原序列) 返回列表**
lst = ["孙凯喜","王永飞","于朝志","须臾间","含税小"]
random.shuffle(lst)
print(lst)
只支持列表被打乱