当前位置: 移动技术网 > IT编程>脚本编程>Python > Python第五次笔记

Python第五次笔记

2020年11月22日  | 移动技术网IT编程  | 我要评论
hashlib模块import hashlibmd=hashlib.md5()md.update("你好")md=md.hexdigest()print(md)出现以下错误:D:\PycharmProjects\untitled\venv\Scripts\python.exe D:\PycharmProjects\untitled\myself\test2.pyTraceback (most recent call last): File "D:\PycharmProjects\un

hashlib模块

import hashlib

md=hashlib.md5()
md.update("你好")
md=md.hexdigest()
print(md)

出现以下错误:

D:\PycharmProjects\untitled\venv\Scripts\python.exe D:\PycharmProjects\untitled\myself\test2.py
Traceback (most recent call last):
  File "D:\PycharmProjects\untitled\myself\test2.py", line 4, in <module>
    md.update("你好")
TypeError: Unicode-objects must be encoded before hashing

由上图可知我们是没有对字符串进行编码,因为update()的括号里不支持将字符串对象引入,要将update括号里的字符串以一种编码格式(最好是utf-8)进行编码

import hashlib   #导入hashlib模块

md=hashlib.md5()   #将hashlib.md5的算法赋值给md
md.update("你好".encode('utf-8'))   #先将你好这个字符串以utf-8编码转换成bytes(字节)格式,再存入到md变量中,因为update中只能存入bytes(字节)
md=md.hexdigest()   #hexdigest(…) 以16进制形式返回加密内容
print(md)
#结果:7eca689f0d3389d9dea66ae112e5cfd7

实现数据序列化与反序列化

  • 序列化:将数据对象转成字符串用于网络数据传输和数据存储
  • 反序列化:将特定格式字符串转为数据对象的,用于在程序中运行

json模块

  • json 目前最流行的一种数据格式,最初是JavaScript中的格式,后来被各大语言所支持。
  • 目前是不同语言代码之间进行数据通信的首选格式。
import json  #导入json模块

json 格式 字符串

"{key:value1,}"

#js                python
#字符串""	       字符串
#数组【】	       列表/元组
#对象		       字典
#true/fales  		True/Fales
import json
dic={
	'name':'shenjie',
	'age':19,
	'email':'2447736430@.com',
	'tuple':(1,2,3,4,True,False)
}
print(dic)
#运行结果:
{'name': 'shenjie', 'age': 19, 'email': '2447736430@.com', 'tuple': (1, 2, 3, 4, True, False)}

json模块中常用的函数和类的功能如下

  • json.dump(obj,fp)将obj对象转换成JSON字符串输出到fp流中,fp是一个支持write()方法的类文件对象。
  • json.dumps(obj):将obj对象转换位JSON字符串,并返回该JSON字符串。
  • json.load(fp):从fp流读取JSON字符串,将其恢复成JSON对象,其中fp是一个支持write()方法的类文件对象。
  • json.loads(s):将JSON字符串s恢复成python对象。
    dumps导出为json字符串

json.dumps()#对数据进行编码,把数据转换成json格式

# 写入 JSON 数据
with open('data.json', 'w') as f:
    json.dump(data, f)

loads加载为python对象

json.loads()#对数据进行解码,从json格式转换成python数据.

# 读取数据
with open('data.json', 'r') as f:
    data = json.load(f)

异常

python标准异常

  1. BaseException:所有异常的父类
  2. SystemExit:解释器请求退出
  3. KeyboardInterrupt:用户中断执行(通常ctrl+c)
  4. Exception:常规错误父类
  5. NameError: name ‘a’ is not defined
  6. TyepError: Can’t convet ‘int’ object to str implictly
  7. IndexError: list index out of range
  8. SyntaxError: unexpected EOF while parsing
  9. IndentationError: unexpected indent
  10. FileNotFoundError:[Errno 2] No sunch file or directory: ‘a.txt’
  11. ImportError: No module named ‘mathss’
  12. AttributeError:‘str’ object has no attribute’abc’

异常与处理

try:
	#编写又可能错误的代码
	a='100'
except Exception as e:
	#当代码有异常时执行,无异常时不执行
	#作用:1.错误时只提示,不中断
	#     2.写入错误日志
	#	  3.补救措施,让之后的代码正常执行
	print("有%s错误了!原因是:%s "%(Exception,e))
else:
	#只当程序正常执行(可选)
	print("一切正常!","a=",a)
finally:
	#不论是否报错都会执行
	for i in range(5):
		print(i)

断言:在特定情况下触发执行某个错误

name = "shenjie"
assert name == "shenjie",NameError("用户名不正确!")
age = 19
class AgeError(Exception:)
		"""docstring for ClassName """
		pass
age = 17		
if age < 18:
		raise AgeError("您的年龄太小,不允许进入娱乐场所!")

本文地址:https://blog.csdn.net/qq_50864635/article/details/109904165

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网