day16.内置方法与模块
一、内置方法
1、abs 绝对值函数
res = abs(-100)
print(res)
2、round 四舍五入 (n.5 n为偶数则舍去 n.5 n为奇数,则进一!)
"""特点:奇进偶不进"""
res = round(4.51)
# res = round(4.5) # 4
# res = round(3.5) # 4
print(res)
3、sum 计算一个序列得和
lst = [-100,20,90,35]
res = sum(lst)
print(res) def func(lst):
total = 0
for i in lst:
total += i
return total
print(func(lst))
4、max min 获取一个序列里边的最大值 最小值
lst = [-100,20,90,35]
# max 获取一个序列里边的最大值
res = max(lst)
print(res)
# min 获取一个序列里边的最小值
res = min(lst)
print(res) # 自定义方法
lst_new = sorted(lst)
print(lst_new)
maxval = lst_new[-1]
minval = lst_new[0]
print(maxval,minval)
max min
高级用法
lst = [("袁伟倬",81),("李虎玲",82),("刘鑫炜",71),("孙京华",70)] def func(n):
# print(n)
return n[-1] # 按照年龄返回
"""
70 => ("孙京华",70)
71 => ("刘鑫炜",71)
81 => ("袁伟倬",81)
82 => ("李虎玲",82)
"""
res = max(lst,key=func)
res = min(lst,key=func)
# res = max(lst)
print(res) print("<=========>")
dic = {"李虎玲":-100,"刘鑫炜":45,"袁伟倬":-70}
def func(n):
# print(n)
return abs(dic[n])
res = max(dic,key=func)
print(res) # 改写成lambda表达式
res = max(dic,key = lambda n : abs(dic[n]))
print(res)
max min高级用法
5、pow 计算某个数值的x次方
"""pow(参数1,参数2[,参数3]) 参数3代表的是取余数"""
res = pow(2,3)
print(res)
res = pow(2,3,3) #
res = pow(2,3,4) #
print(res)
6、range 产生指定范围数据的可迭代对象
'''range(start,end,step)'''
for i in range(1,11,3):
print(i) # 1 4 7 10
for i in range(11,0,-3):
print(i) # 11 8 5 2 ...
7、bin oct hex 将10进制数据转化为二进制 八进制 十六进制
# bin 将10进制数据转化为二进制
res = bin(255)
print(res)
# oct 将10进制数据转化为八进制
res = oct(87)
print(res)
# hex 将10进制数据转化为16进制
res = hex(255)
print(res)
8、chr 将ASCII编码转换为字符 ord 将字符转换为ASCII编码
# chr 将ASCII编码转换为字符
res = chr(97)
print(res)
# ord 将字符转换为ASCII编码
res = ord("A")
print(res)
9、eval 将字符串当作python代码执行
strvar = "print('深圳的天气可真的太热了,受不了')"
# strvar = "a = 90" error 不能执行
eval(strvar)
10、exec 将字符串当作python代码执行(功能更强大)
"""注意点:在与用户交互的时候,慎用"""
strvar = "a = 90"
exec(strvar)
print(a) strvar = """
for i in range(10):
print("你是大傻瓜")
"""
exec(strvar)
11、repr 不转义字符输出字符串
strvar = "E:\nython31_gx\day17"
print(repr(strvar))
12、input 接受输入字符串 (永远接受的是字符串)
"""
name = input("你妈贵姓?")
print(name)
"""
13、hash 生成哈希值
"""相同的两个数据经过哈希算法运算得出的结果一定相同"""
res1 = hash("abc")
res2 = hash("abc")
print(res1,res2)
"""
1.文件校验
2.密码加密
""" with open("ceshi1.txt",mode="r+",encoding="utf-8") as fp:
strvar1 = fp.read()
res1 = hash(strvar) with open("ceshi2.txt",mode="r+",encoding="utf-8") as fp:
strvar2 = fp.read()
res2 = hash(strvar)
# print(res1 == res2)
二、数字模块
import math
1、ceil() 向上取整操作 (对比内置round)*
res = math.ceil(4.9)
res = math.ceil(-3.5)
print(res)
2、floor() 向下取整操作 (对比内置round)*
res = math.floor(3.9)
res = math.floor(-3.8)
print(res)
3、pow() 计算一个数值的N次方(结果为浮点数) (对比内置pow)
res = math.pow(2,3)
# res = math.pow(2,3,3) error # 只有2个参数
print(res) # 结果一定是小数:8.0
4、sqrt() 开平方运算(结果浮点数)*
res = math.sqrt(9)
print(res) # 结果一定是小数:3.0
5、fabs() 计算一个数值的绝对值 (结果浮点数) (对比内置abs)
res = math.fabs(-99)
print(res) # 99.0
6、modf() 将一个数值拆分为整数和小数两部分组成元组*
res = math.modf(13.45)
print(res) # (0.4499999999999993, 13.0)
7、copysign() 将参数第二个数值的正负号拷贝给第一个 (返回一个小数)*
res = math.copysign(-13,-1)
print(res) # 返回一个小数
8、fsum() 将一个容器数据中的数据进行求和运算 (结果浮点数)(对比内置sum)
lst = [1,2,3,4,6]
res = math.fsum(lst)
print(res) # 返回一个小数
9、圆周率常数 pi*
res = math.pi
print(res)
三、random 随机模块
import random
1、random() 获取随机0-1之间的小数(左闭右开) 0<= x <1
res = random.random()
print(res)
2、randrange() 随机获取指定范围内的整数(包含开始值,不包含结束值,间隔值) **
# 一个参数
res = random.randrange(5) # 0~4
# 二个参数
res = random.randrange(2,8) # 2~7
# 三个参数
res = random.randrange(1,10,3) # 1,4,7
print(res)
3、randint() 随机产生指定范围内的随机整数 (了解)
res = random.randint(3,4) # 3,4
# res = random.randint(3) error
# res = random.randint(3,7,2) error # 3 5 7
print(res)
4、uniform() 获取指定范围内的随机小数(左闭右开)
res = random.uniform(1,3) # 1<=x<3 小数 # 源码
# return a + (b-a) * self.random()
"""
a=3,b=1
3 + (1-3) * x = 0 => 3
3 + (1-3) * x = 1 => 1
1<x<=3
"""
res = random.uniform(3,1)
print(res)
5、choice() 随机获取序列中的值(多选一)
lst = ["刘鑫","刘子豪","孙致和","高旭峰","戈隆"]
res = random.choice(lst)
print(res) def mychoice(lst):
num = random.randrange(len(lst)) # 0 1 2 3 4
return lst[num]
res = mychoice(lst)
print(res) # lambda 表达式
func = lambda lst : lst[random.randrange(len(lst))]
print(func(lst))
6、sample() 随机获取序列中的值(多选多) [返回列表]
lst = ["刘鑫","刘子豪","孙致和","高旭峰","戈隆"]
res = random.sample(lst,1)
res = random.sample(lst,2)
print(res)
7、choices() 随机获取序列中的值(多选多) [返回列表] 指定参数k
lst = ["刘鑫","刘子豪","孙致和","高旭峰","戈隆"]
res = random.choices(lst,k=2)
print(res)
8、shuffle() 随机打乱序列中的值(直接打乱原序列)
lst = ["刘鑫","刘子豪","孙致和","高旭峰","戈隆"]
random.shuffle(lst)
print(lst)
9、验证码
def yanzhengma():
# 验证码当中含有小写字母,大写字母,数字
# 小写字母:97~122
strvar = ""
# 随机抽4次
for i in range(4):
s_char = chr(random.randrange(97,123))
# 大写字母:65~90
b_char = chr(random.randrange(65,91))
# # 0~9
num = str(random.randrange(10))
lst = [s_char,b_char,num]
strvar += random.choice(lst)
return strvar
res = yanzhengma()
print(res)
四、序列化模块 pickle
"""
把不能够直接存储的数据变得可存储,这个过程叫做序列化
把文件中的数据拿出来,回复称原来的数据类型,这个过程叫做反序列化 php serialize
unserialize 在文件中存储的数据只能是字符串 或者是 字节流,不能是其他数据类型
如果想要存储,需要序列化. pickle模块可以序列化一切数据类型
"""
import pickle
1、列表可以直接写入文件吗?
import pickle lst = ["马生平","超晨光","吴洪昌"]
# 错误案例
with open("ceshi0727.txt",mode="w",encoding="utf-8") as fp:
fp.write(lst) # 只有字符串可以使用encode 和 decode 转换字节流
lst.encode() error
2、容器类型数据可以被序列化
#dumps 把任意对象序列化成一个bytes
res = pickle.dumps(lst)
print(res) #loads 把任意bytes反序列化成原来数据
lst = pickle.loads(res)
print(lst,type(lst))
3、函数可以序列化
def func():
print("我是最帅的!")
# 序列化
res = pickle.dumps(func)
print(res) # 反序列化
func = pickle.loads(res)
func()
4、迭代器可以序列化
序列化
it = iter(range(10))
res = pickle.dumps(it) # 反序列化
it = pickle.loads(res)
for i in it:
print(i)
5、dump、load 与 dumps、loads文件操作
#dump 把对象序列化后写入到file-like Object(即文件对象)
lst = ["马生平","超晨光","吴洪昌"]
with open("0728.txt",mode="wb") as fp:
# dump(数据,文件对象)
pickle.dump(lst,fp) #load 把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据
with open("0728.txt",mode="rb") as fp:
res = pickle.load(fp)
print(res,type(res))
dump load
lst = ["马生平","超晨光","吴洪昌"]
res = pickle.dumps(lst)
with open("0729.txt",mode="wb") as fp:
fp.write(res) with open("0729.txt",mode="rb") as fp:
res = fp.read()
print(res)
lst = pickle.loads(res)
print(lst , type(lst))
dumps loads
day16.内置方法与模块的更多相关文章
- s14 第4天 关于python3.0编码 函数式编程 装饰器 列表生成式 生成器 内置方法
python3 编码默认为unicode,unicode和utf-8都是默认支持中文的. 如果要python3的编码改为utf-8,则或者在一开始就声明全局使用utf-8 #_*_coding:utf ...
- Express内置方法
创建一个 Express 应用.express()是一个由 express 模块导出的入口(top-level)函数. //最顶级:top-level 内置方法 express.static(root ...
- Python的内置方法
一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(object) ...
- python-day4装饰器、生成器、迭代器、内置方法、序列化、软件目录
@生成器generator a=(i*2 for i in range(10)) a.__next__()#等同于next(a),基本都不用,多用for循环a.send(m)#将m传为yield的值 ...
- 初学Python——介绍一些内置方法
1.abs()求绝对值 a=abs(-10) print(a) # 输出:10 2.all() 用来检测列表元素是否全部为空.0.False print(all([0,5,4])) #当列表所有元素都 ...
- Python 类的内置方法
#!/usr/bin/env python # -*- coding:utf-8 -*- # 作者:Presley # 邮箱:1209989516@qq.com # 时间:2018-11-04 # p ...
- day28 面向对象:反射,内置函数,类的内置方法
面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...
- python day21 ——面向对像-反射 getattr,内置方法
一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_cou ...
- Python之路(第二十九篇) 面向对象进阶:内置方法补充、异常处理
一.__new__方法 __init__()是初始化方法,__new__()方法是构造方法,创建一个新的对象 实例化对象的时候,调用__init__()初始化之前,先调用了__new__()方法 __ ...
随机推荐
- MVC + EFCore 项目实战 - 数仓管理系统2- 搭建基本框架配置EFCore
本次课程就正式进入开发部分. 首先我们先搭建项目框架,还是和之前渐进式风格保持一致,除必备组件外,尽量使用原生功能以方便大家理解. 开发工具:vs 2019 或以上 数据库:SQL SERVER 20 ...
- .net Framework4 类库调用Jwt
通过jwt源码,将其引用的Newtonsoft.Json.dll的9.0版本改为最新的12.0版本后重新生成以下文件. 下载地址: https://files.cnblogs.com/files/Zh ...
- 从0开始,手把手教你用Vue开发一个答题App
项目演示 项目演示 项目源码 项目源码 教程说明 本教程适合对Vue基础知识有一点了解,但不懂得综合运用,还未曾使用Vue从头开发过一个小型App的读者.本教程不对所有的Vue知识点进行讲解,而是手把 ...
- 华为交换机如何配置SSH远程登录,一分钟秒学会
从事网络运维工作的小伙伴们都知道,在交换机正式上线时,必须完成配置SSH远程登录,这样做目的是为了日后,维护方便,不需要每次登录设备都要跑到机房,这样既不现实,又费事. 远程登录方式 目前网络设备中主 ...
- 3dTiles 数据规范详解[4.1] b3dm瓦片二进制数据文件结构
B3dm,Batched 3D Model,成批量的三维模型的意思. 倾斜摄影数据(例如osgb).BIM数据(如rvt).传统三维模型(如obj.dae.3dMax制作的模型等),均可创建此类瓦片. ...
- JavaScript动画基础:canvas绘制简单动画
动画是将静止的画面变为动态的艺术.实现由静止到动态,主要是靠人眼的视觉残留效应.视觉残留也叫视觉暂留现象,物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1~0.4秒左右的图像 ...
- java 正则提取字符串中的电话号码
public static void test2() { String str = "张三:13539558064,李四:15626829748,赵六:13718952204"; ...
- Shell基本语法---函数
函数 函数定义 function 函数名 () { 指令... return n } 函数调用及参数传递 function func() { echo "第零个参数:" $ #脚本 ...
- NoSQL数据库-MongoDB 学习(一)
基本介绍 MongoDB 是为了快速开发互联网 Web 应用而设计的数据库系统 MongoDB 的设计目标是极简.灵活.作为 Web 应用栈的一部分 MongoDB 的数据模型是面向文档的,所谓文档是 ...
- 在ASP.NET中,<%= %>和<%# %>有什么区别
asp.net中<%#%>出现在repeater gridview等控件中.用以绑定控件的datasource asp.net中<%%>的意思是 上运行c#或者vb代码,比如: ...