#### #### 内置方法
# abs 绝对值函数
val = -16
res = abs(val)
print(res)
# round 四舍五入 (n.5和n.50的情况下 n为偶数则舍去,为奇数则进一)
'''奇进 偶不进'''
res = round(val)
# sum 计算一个序列的和
lst = [1,2,3,4,5]
res = sum(lst)
print(res)
# max 获取一个序列里的最大值
res = max(lst)
res2 = min(lst)
# min 获取一个序列里的最小值
lst = [("王振",25),("刘伟",50),("刘思敏",18)]
def func(n):
return n[-1] # 返回的值是判定参考的依据
res = min(lst,key = func)
res = max(lst,key = func)
print(res)
# pow 计算某个数值的x次方
res = pow(2,3,5)
第三个参数是取余,2的3次方 与5取余
print(res)
# range 产生指定范围数据的可迭代对象
# bin 将十进制转换为二进制
res = bin(5)
print(res)
# oct 将10进制转换为八进制
# hex 将10进制转换成16进制
# chr 将ASCII编码转换成字符 大小写相差32 小写字母a = 97
chr(65)
# ord 将字符转换成ASCII编码
ord("A")
谨慎使用eval exec
# eval 把字符串当成python代码执行
strvar = "print(111)"
eval(strvar)
# exec 将字符串当做python代码执行, (功能更强大)
exec(strvar)
# repr 不转义字符,原型化输出字符串
strvar = "E\nython\tay15"
repr(strvar)
或者字符串前面加r
# input 接受输入字符串
# hash 生成哈希值
strvar1 = "abccc"
strvar2 = "abccc"
hash(strvar1)
hash(strvar2)
相同字符串,无论哈希多少次,都会产生相同的唯一值
功能:
(1)让密码加密 hashlib
(2)文件校验 比较文件内容
with open("1.txt",mode="r",encoding="utf=8") as fp:
strvar = fp.read()
res1 = hash(strvar)
with open("2.txt",mode="r",encoding="utf=8") as fp:
strvar = fp.read()
res2 = hash(strvar)
print(res1,res2)
<--------------------------------------------------------------------->
### 序列化模块 pickle
'''
把不能够直接存储在文件中的数据,变得可存储,这个过程就是序列化
反序列化:把文件中的数据内容拿出来恢复成原来的数据类型
文件中存储的数据,要么是字符串,要么是字节流
'''
import pickle
(1) dumps loads
# dumps 把任意对象序列化成一个bytes
pickle.dumps(lst)
res = pickle.dumps(lst)
print(res)
#loads 把任意bytes反序列化成原来数据
lst = pickle.loads(res)
print(lst)
"所有的数据类型都可以通过dumps,loads进行序列化和反序列化"
(2)dump load
# dump 把对象序列化后写入到file-like Object(即文件对象)
规则:dump(要转的数据,文件对象)
pickle.dump(dic,fp)
# load 把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据
res = pickle.load(fp)
print(res)
<-------------------------------------------------------------------------->
#### json模块
'''
所有的编程语言都能够识别的数据格式 叫做 json,他是一个字符串
能够通过json序列化成字符串的有如下类型: int float bool str list tuple dict None
pickle 序列化成字节流
json 序列化成字符串
'''
####json用法
(1)dumps 和loads 是一对,序列化成字符串
ensure_ascii = False 不通过ASCII编码来显示内容
sort_keys = True 对字典的键进行排序
dic = {"name":"王振","age":30}
res = json.dumps(dic,ensure_ascii = False,sort_keys = True)
print(res,type(res))
dic = json.loads(res)
print(dic,type(dic))
(2) dump 和 load 是一对,针对于文件,把数据进行序列化操作
dic = {"name":"王振","age":30}
with open("2.txt",mode="a+",encoding="utf=8") as fp:
json.dump(dic,fp,ensure_ascii = False)
with open("2.txt",mode="r",encoding="utf=8") as fp:
json.load(fp)
#### json 和 pickle的区别
'''
json 可以连续的dump 不可以连续的load (load是拿出所有数据一次性反解,容易出错)
读取可以使用loads来解决
json 序列化之后的数据是字符串,所有编程语言都识别(多用于数据交流)
但是局限于int float bool str list tuple dict None八种类型
pickle 可以连续的dump,也可以连续load
pickle 序列化之后的数据是字节流,(多用于存储数据)
所有数据类型都可转化,但仅限于python之间的数据传输
'''
一次性把文件中的数据都拿出来
try except 抑制报错
try:
with open("1.txt",mode="rb") as fp:
while True:
dic = pickle.load(fp)
print(dic)
except:
pass
<----------------------------------------------------------------------------------->
# #### time 模块
import time
# sleep() 程序睡眠等待
time.sleep(3)
print("王振")
### 进度条效果
#(1)定义进度条样式
print("[%-50s]" % ("#") )
#(2)让进度条跑起来
strvar = ""
for i in range(50):
strvar += "#"
time.sleep(1)
print("\r[%-50s]" % (strvar),end = "")
#(3)根据文件大小,调整进度条的位置
def progress(percent):
if percent > 1:
return 1
strvar = int(50*percent) * "#"
print("\r[%-50s] %d%%" % (strvar,int(100 * percent)),end = "")
recv_size = 0
total_size = 102800
while recv_size < total_size:
time.sleep(0.01)
recv_size += 1024
percent = recv_size/total_size
progress(percent)
王振2020-5-19笔记
最新推荐文章于 2024-09-30 09:32:54 发布