欢迎来到十九分快乐的博客

生死看淡,不服就干。

14.内置函数-数学模块math-随机模块random

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())
posted @ 2020-12-08 22:47  十九分快乐  阅读(130)  评论(0编辑  收藏  举报