王振2020-5-19笔记

#### #### 内置方法
# 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)
第三个参数是取余,23次方  与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)












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值