### math 数学模块
"""模块.方法()"""
import math
#ceil() 向上取整操作 *****
#小数点后去掉,不存在四舍五入,整数加1
res = math.ceil(3.01)
print(res)==>4
#floor() 向下取整操作 *****
#只保留整数部分,不存在四舍五入
res = math.floor(4.1)
print(res)==>4
#pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)
res = math.pow(2,3)
print(res)
#sqrt() 开平方运算(结果浮点数)
res = math.sqrt(9)
print(res)
#fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)
res = math.fabs(-9)
print(res)
#modf() 将一个数值拆分为整数和小数两部分组成元组
res = math.modf(-19.8)
print(res)
#copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)
res = math.copysign(-90,-18)
print(res)# -90.0
#fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)
lst = [1,2,3,4]
res = math.fsum(lst)
print(res)
#圆周率常数 pi
res = math.pi
print(res)
### 随机模块 random
import random
#random() 获取随机0-1之间的小数(左闭右开) 0 <= x < 1
res = random.random()
print(res)
#randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值) 同range *****
一个参数的用法
res = random.randrange(3) # 0 1
二个参数的用法
res = random.randrange(3,7) # 3 4 5 6
三个参数的用法
res = random.randrange(3,10,2) # 3 5 7 9
print(res)
#randint() 随机产生指定范围内的随机整数(可以取到最大值)[ 了解 ]
res = random.randint(1,3) # 1 2 3
print(res)
#uniform() 获取指定范围内的随机小数(左闭右开) 1<=x < 3的小数
res = random.uniform(1,3)
res = random.uniform(3,1)
print(res)
"""
"Get a random number in the range [a, b) or [a, b] depending on rounding."
return a + (b-a) * self.random()
a = 3 , b = 1
return a + (b-a) * 0~1
return 3 + (1-3) * 0~1
return 3 + -2 * (0~1)
最大值:3 + -2 * 0 = 3
最小值:3 + -2 * 1 = 1
1< x <=3
"""
#choice() 随机获取序列中的值(多选一)
lst = ["周杰伦","蔡徐坤","易烊千玺","神秘boy"]
res = random.choice(lst)
print(res)
自定义choice函数
def mychoice(lst):
# 随机获取0 ~ 3的下标
num = random.randrange(len(lst))
# 通过下标来获取列表的值
return lst[num]
print(mychoice(lst))
lambda表达式
mychoice = lambda lst : lst[random.randrange(len(lst))]
print(mychoice(lst))
#sample() 随机获取序列中的值(多选多) [返回列表]
lst = ["周杰伦","蔡徐坤","易烊千玺","神秘boy"]
res = random.sample(lst,2)
print(res)
#shuffle() 随机打乱序列中的值(直接打乱原序列)
lst = ["周杰伦","蔡徐坤","易烊千玺","神秘boy"]
random.shuffle(lst)
print(lst)
随机验证码 4位 大小写字母数字
chr => 给ascii码返回对应的字符
'''
A~Z
a~z
0~9
'''
# A => 65
# a => 97
print(chr(65))
def yanzhengma():
strvar = ""
for i in range(4):
# 大写字母 A-Z 65~90
b_word = chr( random.randrange(65,91) )
# 小写字母 a-z 97~122
s_word = chr( random.randrange(97,123) )
# 数字 0 ~ 9
num = str( random.randrange(10) )
# 把可能的字符都放在列表里 , 一次抽一个
lst = [b_word,s_word,num]
strvar += random.choice(lst)
return strvar
res = yanzhengma()
print(res)
### 内置方法
abs 绝对值函数
val = -16
res = abs(val)
print(res)
round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!)
"""奇进偶不进"""
val = 3.5
val = 4.5
val = 4.51
val = 4.12
val = 4.6
res = round(val)
print(res)
sum 计算一个序列得和
lst = [1,2,3,4,5]
res = sum(lst)
max 获取一个序列里边的最大值
lst = [10,100,-3,40]
res1 = max(lst)
res2 = min(lst)
print(res1,res2)
sorted 找出最小值和最大值
lst_new = sorted(lst)
min_val = lst_new[0]
max_val = lst_new[-1]
print(min_val,max_val)
min 获取一个序列里边的最小值
sorted(iterable,key=函数) max和min 同sorted用法
'''找出年龄最小的元组'''
lst = [("王振",25),("刘伟",50),("刘思敏",18)]
def func(n):
# print(n)
return n[-1] # 返回的值是判断参考的依据
res = min(lst,key=func)
res = max(lst,key=func)
print(res)
dic = {"云超":100,"朱胜":200,"杨浩":-300}
def func(n):
# print(n)
# print(dic[n])
return abs(dic[n])
res = max(dic,key=func)
print(res)
pow 计算某个数值的x次方
res = pow(2,3) # 8
第三个参数的用作是取余
res = pow(2,3,5) # 3
print(res)
range 产生指定范围数据的可迭代对象
for i in range(1,11,3): # 1 4 7 10
print(i)
for i in range(10,0,-3):#`10 7 4 1
print(i)
bin 将10进制数据转化为二进制
res = bin(5) # 0b10
print(res)
oct 将10进制数据转化为八进制
res = oct(8) # 01234567 8 => 7+1 =>0o10
print(res)
hex 将10进制数据转化为16进制
res = hex(255)
res = hex(16) # 0x10
print(res)
chr 将ASCII编码转换为字符
"""大小字母相差的ascii编码是32.小写字母a => 97"""
res = chr(65)
print(res)
ord 将字符转换为ASCII编码
res = ord("A")
print(res)
谨慎使用eval 和 exec 尤其是在和用户交互数据时候注意;
eval 将字符串当作python代码执行
strvar = "print(111)"
strvar = “a = 10” eval执行不了
print(strvar)
eval(strvar)
exec 将字符串当作python代码执行(功能更强大)
strvar = "a = 10"
strvar = """
for i in range(10):
print(i)
“”"
exec(strvar)
print(a)
repr 不转义字符输出字符串
strvar = "E:\nython30\tay15"
print(repr(strvar))
input 接受输入字符串
username = input("你好,你妈贵姓~")
print(username)
hash 生成哈希值
两个相同的字符串,无论哈希多少次,都会产生相同的唯一值"""
(1) 让密码加密 hashlib
(2) 文件的校验 比较文件内容
strvar1 = "abcccc"
strvar2 = "abcccc"
print(hash(strvar1))
print(hash(strvar2))
with open("ceshi1.txt",mode="r",encoding="utf-8") as fp:
strvar = fp.read()
res1 = hash(strvar)
with open("ceshi2.txt",mode="r",encoding="utf-8") as fp:
strvar = fp.read()
res2 = hash(strvar)
print(res1,res2)