1.内置函数
# 1.abs绝对值函数
print(abs(-33))
# 2.round 四舍五入(n.5 n为偶数则舍弃,n为奇数则进1)
print(round(2.3))
print(round(2.5))
print(round(3.5))
# 3.sum 计算一个系列的和
lst=[11,22,33,44]
print(sum(lst))
# 4.max 获取一个数列最大值
# 5.min 获取一个数列最小值
lst=[21,3,5,65,-43]
print(max(lst))
print(min(lst))
"""
max与min的高阶用法与sorted相同
return 最终返回的数据与传入到自定义函数的数据是一致的
"""
# 练习1
lst=[("aa",11),("bb",4),("cc",22)]
def func(n):
return n[1]
print(max(lst,key=func)) #("cc",22)
print(min(lst,key=func)) #("bb",4)
# 练习2
dic={"a":11,"bb":22,"cc":33}
def func(n):
# print(n) #字典传入的是键
return dic[n]
print(max(dic,key=func)) #cc
# 6.pow 计算某个数值的x次方
print(pow(3,3)) #两个参数
print(pow(3,4,4)) #前两个数的结果第三个参数取余
# 7.bin 将十进制转化为二进制
# 8.oct 将十进制转化为八进制
# 9.hex 将十进制转化为十六进制
print(bin(33))
print(oct(33))
print(hex(33))
# 10.chr 将ASCII编码转换为字符
# 11.ord 将字符转换为ASCII编码
print(chr(65))
print(ord("1"))
# 12.eval 将字符串当做Python代码执行 慎用
# 13.exec 将字符串当做Python代码执行(功能更强大) 慎用
strvar='print("和借款方")'
print(strvar)
eval(strvar)
strvar="""
for i in range(10):
print(i)
"""
exec(strvar)
# 14.repr 不转义字符输出字符串(等价于原字符串)
strvar="\njdfk\tjdfsl\r"
print(repr(strvar))
# 15.hash 生成哈希值
res1=hash("aa")
res2=hash("aa")
print(res1)
print(res1,res2) #同一时间哈希相同的值一样
# 可以用来检查两个文件是否一样
with open("笔记1.py",mode="r+",encoding="utf-8") as fp1:
with open("笔记2.py",mode="r+",encoding="utf-8") as fp2:
res1 = hash(fp1.read())
res2 = hash(fp2.read())
if res1 == res2:
print("文件内容一致")
else:
print("文件内容不一致")
2.数学模块:math
import math #引入模块
# 1.ceil 向上取整
# 2.floor 向下取整
print(math.ceil(3.3)) #4
print(math.floor(3.3)) #3
# 3.fabs 绝对值(结果为浮点数)(对比内置abs)
print(math.fabs(-4)) #4.0
# 4.fsum 将一个数列进行求和(结果为浮点数)(对比内置sum)
lst=[1,2,3,4]
print(math.fsum(lst)) #10.0
# 5.圆周率常数 pi
print(math.pi)
# 6.pow(a,n) 计算a的n次方(结果为浮点数)(对比内置pow)只有两个参数
print(math.pow(2,3)) #8.0
# 7.sqrt 开平方运算(结果为浮点数)
print(math.sqrt(9)) #3.0
# 8.modf 将一个数值拆分成小数和整数部分(浮点数)组成元组
print(math.modf(3.45))
# 9.copysign 将参数第二个数值的正负号拷贝给第一个数值(结果为浮点数)
print(math.copysign(11,-1)) #-11.0
3.随机模块 :random
import random
# 1.random 随机获取[0,1)之间的小数
# 2.uniform(a,b) 随机获取[a,b)之间的小数(a,b大小无限制)
print(random.random())
print(random.uniform(-1,1))
# 3.randrange(开始,结束,间隔值) 随机获取指定范围的一个整数(留头舍尾)
# 4.randint(开始,结束) 固定格式 随机获取指定范围的一个整数(区间都能取到)
print(random.randrange(4)) #0,1,2,3中一个
print(random.randrange(1,5))#1,2,3,4中一个
print(random.randrange(1,10,3))#1,4,7中一个
print(random.randint(1,5)) #1,2,3,4中一个
# 5.choice 随机获取序列中的一个值(多选一)
# 6.sample(a,n) 随机获取a序列中的n个值(多选多,返回一个列表)
lst=[1,2,3,4,"a","b","c"]
print(random.choice(lst))
print(random.sample(lst,1))
# 7.shuffle 随机打乱序列中的值(打乱的是原序列)
lst=[1,2,3,4,5]
random.shuffle(lst)
print(lst)
# 验证码功能
def func():
strvar=""
lst=[]
for i in range(4): #4位验证码
num=str(random.randrange(10)) #验证码中有数字
lst.append(num)
xiaoxie=chr(random.randrange(97,123)) #验证码中有小写字母
lst.append(xiaoxie)
daxie=chr(random.randrange(65,91)) #验证码中有大写字母
lst.append(daxie)
strvar+=random.choice(lst) #随机在列表中选择一个到strvar
return strvar
print(func())