python_从异常的传递性到pyecharts模块简介

异常的传递性
  1. 传递性示例:

 def func1():
     print("func1 begin")
     num = 1/0
     print("func1 end")
 def func2():
     print("func2 begin")
     func1()
     print("func2 end")
 def main():
     func2()
 main()
 '''
 func2 begin
 func1 begin
 Traceback (most recent call last):
   File "d:\CODE\testproject\test230227\chuandixing.py", line 11, in <module>
     main()
   File "d:\CODE\testproject\test230227\chuandixing.py", line 10, in main
     func2()
   File "d:\CODE\testproject\test230227\chuandixing.py", line 7, in func2
     func1()
   File "d:\CODE\testproject\test230227\chuandixing.py", line 3, in func1
     num = 1/0
           ~^~
 ZeroDivisionError: division by zero
 '''
  1. 可捕获:

 def func1():
     print("func1 begin")
     num = 1/0
     print("func1 end")
 def func2():
     print("func2 begin")
     func1()
     print("func2 end")
 def main():
     try:
         func2()
     except Exception as e:
         print(f"已捕获,错误是:"{e})
 #可见,捕获一个bug并不需要真正深入程序内部
模块的概念和深入
  1. 是什么:一个python代码文件,内含类、函数、变量等,我们可以导入进行使用

  1. 如何导入:[中括号表示可选内容]

 [from模块名] import [模块|类|变量|函数|*][as别名]
示例:
 # import module
 import time# 导入python内置的time模块,ctrl+鼠标左键点击time,可进入time文件
 print("1")
 time.sleep(3) # 这个点表示sleep函数属于time,,通过.可以使用模块内的所有功能
 print("2")
 ​
 # from module import class\args\func
 from time import sleep# 只从time导入sleep函数
 print("1")
 sleep(3) # 直接使用sleep
 print("2")
 ​
 # from module import *
 from time import *# 从time全部导入,使用上和import time无异
 print("1")
 sleep(3)
 print("2")
 ​
 # import module as nickname
 import time as t
 print("1")
 t.sleep(3)
 print("2")
 ​
 # from module import func as nickname
 from time import sleep as sl
 print("1")
 sl(3)
 print("2")
  1. 注意:

  1. from可以省略,直接import即可

  1. as 别名可以省略

  1. 通过"."来确定层级关系

  1. 模块的导入一般写在开头

自定义模块
  1. 如何自定义模块并导入:

在python代码文件中正常写代码即可,通过import、from关键字,和导入python内置模块一样导入即可使用

  1. main变量的功能:

 if__main__=="_main_"
 #表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则无法进入if内部
  1. 注意:

  1. 不同模块,同名的功能,如果都被导入,那么后倒入的会覆盖先导入的

  1. all变量可以控制*所代表的是哪些功能

  1. 示例:

 # 导入自定义模块使用
 import mymodule
 mymodule.test(2,3)
 ​
 # 导入不同模块的同名功能
 from mymodule import test
 from newmodule import test
 test(3,2)#结果是3-2=1,表明导入同名模块时新的会覆盖旧的
 ​
 # main变量
 from mymodule import test#结果是3,当我们import的时候,实际上已经执行了一遍
 '''但当模块页变成
 if __name__ == "__main__":
     test(1, 2)
 之后,在这里调用不会再自动执行
 '''
 ​
 # all变量,是一个列表,写在模块页,控制导入的内容(此时,在newmodule.py写入__all__=="test_a")
 from newmodule import *
 test_a(1, 2)#只有test_a被导入
 from newmodule import test_b#再次手动写导入可以把b函数导入,如果只用*,就会限制只导入a函数
 test_b(1, 2)
自定义python包
  1. 是什么:包是一个文件夹,里面可以存放许多python的模块(代码文件),通过包,在逻辑上将一批模块归结为一类,方便使用

  1. init文件的作用:通过这个文件来表示一个文件夹是python的包,而非普通的包,在init中用all规定能导入的内容

  1. all变量作用:控制import* 能够导入的内容

第三方包
  1. 是什么:第三方开发的包,同类型功能集合体

  1. 如何安装:

  1. python命令提示符:pip install 包名

  1. 同上,但:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

  1. vscode/pycharm

综合案例:自定义工具包
  1. 示例:Huanghoooooo/a-test-package-by-python (github.com)

Chap10 python基础综合案例—折线图

案例介绍
  1. 内容:利用pyecharts包,完成对世界疫情情况的可视化

  1. 目标:通过案例,回忆巩固python基础的语法

  1. 锻炼编程能力,熟练语法的使用

json数据格式的转换
  1. 是什么:一种轻量级的数据交互格式,可以按照json指定的格式去组装和封装数据,作为一种中转的数据格式,在不同语言之间相互的传递数据

  1. json格式(json格式本质上是字符串str):

  1. 字典:{xxx}

  1. 内嵌字典的列表:[{xxx}{xxx}]

  1. python数据和json数据的相互转化示例:

 # 导入json模块
 import json
 ​
 # 准备符合json格式要求的python数据
 data = [{"name": "xiaoming", "age": 20}, {"name": "xiaowang", "age": 18}]
 ​
 # 通过json.dumps(data)方法把python数据转化为json数据
 json_str = json.dumps(data, ensure_ascii=False)
 print(json_str)
 print(type(json_str)) # 是字符串
 ​
 # 通过json.loads(data)方法把json数据转化为python数据
 s = '[{"name": "xiaoming", "age": 20}, {"name": "xiaowang", "age": 18}]'# 外侧单引号,内部双引号
 s = json.loads(s)
 print(s)
 print(type(s)) # 是字符串

注意:json_str = json.dumps(data,ensure_ascii=False)这一行中,使参数ensure_ascii等于False可以使内容不用ascii转换,而是直接输出出去,从而中文字符不会被转换成unicode字符,确保中文正常转换

pyecharts模块简介
  1. 开发可视化图表使用的技术栈是:Echarts框架的python版本:pyecharts包

  1. 网址:www.gallery.pyecharts.org/www.pyecharts.org

  1. 安装:cmd>pip install pyecharts

pyecharts快速入门
  1. 构建一个基础折线图

 from pyecharts.charts import Line#导包
 ​
 line = Line()#调用Line函数
 line.add_xaxis(["China", "US", "UK"])#横坐标
 line.add_yaxis("GDP", [30, 20, 10])#y轴坐标名称、y值
 #render将代码生成图像,括号中填写路径信息(具体到生成文件的名称)
 line.render(r"D:\CODE\testproject\test230227\可视化\折线图\test_pyecharts.html")

路径有转义符问题:

  1. 使用全局配置项设置属性

全局配置项可通过 set_global_opts 方法设置,标题、图例、移动效果、工具栏等等等等

# 导包:图表中的折线图
from pyecharts.charts import Line
# 导包:options中的一大堆功能
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts
line = Line()
line.add_xaxis(["China", "US", "UK"])
line.add_yaxis("GDP", [30, 20, 10])
 ​
line.set_global_opts( # 对set_global_opts提供的选项进行自由调整
    title_opts=TitleOpts(title="GDP展示", pos_left=100, pos_bottom="90%"),
    legend_opts=LegendOpts(is_show=True),
    toolbox_opts=ToolboxOpts(is_show=True),
    visualmap_opts=VisualMapOpts(is_show=True)
)
# render将代码生成图像
line.render(r"D:\CODE\testproject\test230227\可视化\折线图\test_pyecharts.html")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值