异常
① 捕获异常语法:
try:
可能发生错误的代码
except:
如果出现异常执行的代码
else:(可选)
没有异常执行的代码
finally:(可选)
无论是否发生异常都要执行的代码
异常的传递
异常具有传递性,当所有函数都没有捕获异常的时候,程序会报错。
模块
模块是一个Python文件,以.py结尾。模块能定义函数、类和变量,模块里也能包含可执行的代码。
模块的导入方式
[ from 模块名] import [ 模块 | 类 | 变量 | 函数 | * ] [ as 别名 ]
常用的组合形式
import 模块名
from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
使用模块内的方法:
模块.函数()
自定义模块
① 当模块被调用时,会自动执行模块内的代码,若在模块内写测试代码,但是在导入模块时又并不想代码被执行,可以使用
if __name__ == __main__
在模块内运行时,内置变量__name__ = __main__,所以为true 可以执行;
当调用模块时,内置变量__name__ != __main__,所以未false不执行
② __all__变量
如果一个模块文件中有‘ __all__ ’变量,当使用‘ from xxx import * ’导入时,只能导入这个列表[ 列表中存函数名 ]中的元素。
注:不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的
python包
包就是一个文件夹,在该文件夹下包含一个__init__.py文件,该文件夹可用于包含多个模块文件
包的作用:当我们模块文越来越多时,包可以帮助我们管理这些模块,包的作用就是包含多个模块,但包的本质依然是模块。
导入包
① import 包名.模块名
包名.模块名.目标函数
② from 包名 import 模块名
模块名.目标函数
案列开发
json数据格式
主要功能:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。
json格式转字符串
# json格式转字符串
import json
data = [{'name':'张大山', 'age':11}, {'name':'王大翠', 'age':13}, {'name':'周小虎', "age":15}]
json_str = json.dumps(data, ensure_ascii=False)
print(type(json_str))
# <class 'str'>
print(json_str)
# [{"name": "张大山", "age": 11}, {"name": "王大翠", "age": 13}, {"name": "周小虎", "age": 15}]
d = {'name':'周杰伦', 'addr':'台北'}
print(d)
# {'name': '周杰伦', 'addr': '台北'}
字符串转换为json格式
# json格式转字符串
import json
s = '[{"name": "张大山", "age": 11}, {"name": "王大翠", "age": 13}, {"name": "周小虎", "age": 15}]'
l = json.loads(s)
print(type(l))
# <class 'list'>
print(l)
# [{'name': '张大山', 'age': 11}, {'name': '王大翠', 'age': 13}, {'name': '周小虎', 'age': 15}]
s1 =' {"name": "周杰伦", "addr": "台北"} '
l1 = json.loads(s1)
print(type(l1))
# <class 'dict'>
print(l1)
# {'name': '周杰伦', 'addr': '台北'}