欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python第五次笔记

程序员文章站 2022-04-07 14:01:01
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

相关标签: 笔记