当前位置: 首页 > news >正文

河南平顶山网站建设与管理专业网站按天扣费优化推广

河南平顶山网站建设与管理专业,网站按天扣费优化推广,代购网站建设,网站栏目做树形结构图Python-第九天 Python异常、模块与包一、了解异常1. 什么是异常:2. bug是什么意思:二、异常的捕获方法1. 为什么要捕获异常?2. 捕获异常的语法3. 如何捕获所有异常?三、异常的传递性1.异常是具有传递性的四、Python模块1. 什么是模…

Python-第九天 Python异常、模块与包

  • 一、了解异常
    • 1. 什么是异常:
    • 2. bug是什么意思:
  • 二、异常的捕获方法
    • 1. 为什么要捕获异常?
    • 2. 捕获异常的语法
    • 3. 如何捕获所有异常?
  • 三、异常的传递性
    • 1.异常是具有传递性的
  • 四、Python模块
    • 1. 什么是模块?
    • 2. 如何导入模块
    • 3. 注意事项:
    • 4.自定义模块
      • 4.1. 如何自定义模块并导入?
      • 4.2. __name__变量的功能是
      • 4.3. 注意事项
  • 五、Python包
    • 1. 什么是Python的包?
    • 2. __init__.py文件的作用
    • 3. __all__变量的作用
  • 六、安装第三方Python包
    • 1.什么是第三方包
    • 2. 如何安装
      • 2.1 在命令提示符内安装
      • 2.2 换源
      • 2.3 在PyCharm中安装
    • 3. 综合案例

一、了解异常

1. 什么是异常:

异常就是程序运行的过程中出现了错误

2. bug是什么意思:

bug就是指异常的意思,因为历史因为小虫子导致计算机失灵的案例,所以延续至今,bug就代表软件出现错误。

二、异常的捕获方法

1. 为什么要捕获异常?

在可能发生异常的地方,进行捕获。当异常出现的时候,提供解决方式,而不是任由其导致程序无法运行。

2. 捕获异常的语法

try:可能发生异常的语句
except[异常 as 别名:]如果出现异常执行的代码
[else:]未出现异常时应做的事
[finally:]不管出不出现异常都会做的事

① 如果尝试执行的代码的异常类型和要捕获的异常类型不一致,则无法捕获异常。
② 一般try下方只放一行尝试执行的代码。

# 基本得捕获语法
try:f = open(r'C:\Users\xiaze\Desktop\1.txt','r',encoding='UTF-8')
except:print('出现了异常,因为文件不存在,我将open的模式,改为w模式去打开')f = open(r'C:\Users\xiaze\Desktop\1.txt','w',encoding='UTF-8')# 捕获指定异常
try:print(name)# 1 / 0
except NameError as e:print('出现了变量名未定义')# 捕获多个异常
try:# print(name)1 / 0
except (NameError,ZeroDivisionError) as e:print('出现了变量名未定义或者除以0的异常')print(e)# 捕获所有异常
try:print(name)# 1 / 0
except Exception as e:print('出现异常了')print(e)

3. 如何捕获所有异常?

异常的种类多种多样,如果想要不管什么类型的异常都能捕获到,那么使用:

  • except:
  • except Exception:
    两种方式捕获全部的异常

三、异常的传递性

1.异常是具有传递性的

当函数func01中发生异常, 并且没有捕获处理这个异常的时候, 异常
会传递到函数func02, 当func02也没有捕获处理这个异常的时候
main函数会捕获这个异常, 这就是异常的传递性.

在这里插入图片描述

提示:
当所有函数都没有捕获异常的时候, 程序就会报错

利用异常具有传递性的特点, 当我们想要保证程序不会因为异常崩溃的时候, 就可以在main函数中设置异常捕获, 由于无论在整个程序哪里发生异常, 最终都会传递到main函数中, 这样就可以确保所有的异常都会被捕获。

四、Python模块

1. 什么是模块?

模块就是一个Python代码文件,内含类、函数、变量等,我们可以导入进行使用。

2. 如何导入模块

模块在使用前需要先导入 导入的语法如下:

[from 模块名] import [模块 || 变量 | 函数 | *] [as 别名]

常用的组合形式如:

  • import 模块名
  • from 模块名 import 类、变量、方法等
  • from 模块名 import *
  • import 模块名 as 别名
  • from 模块名 import 功能名 as 别名

3. 注意事项:

  • from可以省略,直接import即可
  • as别名可以省略
  • 通过”.”来确定层级关系
  • 模块的导入一般写在代码文件的开头位置
# import 模块名  
# 使用import导入time模块的所有功能(函数)
import time
time.sleep(5)# from 模块名 import 类、变量、方法等
# 使用from导入time的sleep功能(函数)
from time import sleep
sleep(5)# from 模块名 import *
# 使用 * 导入time模块的全部功能
from time import *
sleep(5)# import 模块名 as 别名
import time as t
t.sleep(5)# from 模块名 import 功能名 as 别名
from time import sleep as sl
sl(5)

4.自定义模块

4.1. 如何自定义模块并导入?

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

4.2. __name__变量的功能是

if __name __ == “__main __”表示,只有当程序是直接执行的才会进入if内部,如果是被导入的,则if无法进入

def test1(a, b):print(a+b)
if __name__ == '__main__':test1(2, 1)

4.3. 注意事项

不同模块,同名的功能,如果都被导入,那么后导入的会覆盖先导入的
__all__变量可以控制import *的时候哪些功能可以被导入

__all__ = ['test2']

在这里插入图片描述

五、Python包

1. 什么是Python的包?

包就是一个文件夹,里面可以存放许多Python的模块(代码文件),通过包,在逻辑上将一批模块归为一类,方便使用。

2. init.py文件的作用

创建包会默认自动创建__init__.py的文件(如果没有创建,手动创建一个空的即可),通过这个文件来表示一个文件夹是Python的包,而非普通的文件夹。
在这里插入图片描述

3. __all__变量的作用

同模块中学习到的是一个作用,控制 import * 能够导入的内容

"""
__init__.py 
"""__all__ = ['my_modle1']
"""
test.py 
"""import myPackage.my_modle1
myPackage.my_modle1.test1()# from myPackage import my_modle2
# my_modle2.test2()# from myPackage import *
# my_modle1.test1()
# my_modle2.test2()   # 无法使用
"""
my_modle1.py 
"""
def test1():print('模块一的test1被调用')
"""
my_modle2.py 
"""
def test2():print('模块二的test2被调用')

六、安装第三方Python包

1.什么是第三方包

我们知道,包可以包含一堆的Python模块,而每个模块又内含许多的功能。
所以,我们可以认为:一个包,就是一堆同类型功能的集合体。

在Python程序的生态中,有许多非常多的第三方包(非Python官方),可以极大的帮助我们提高开发效率,如:

  • 科学计算中常用的:numpy包
  • 数据分析中常用的:pandas包
  • 大数据计算中常用的:pyspark、apache-flink包
  • 图形可视化常用的:matplotlib、pyecharts
  • 人工智能常用的:tensorflow

这些第三方的包,极大的丰富了Python的生态,提高了开发效率。
但是由于是第三方,所以Python没有内置,所以我们需要安装它们才可以导入使用哦。

2. 如何安装

2.1 在命令提示符内安装

pip install 包名称

使用指定源安装,获取本次更快下载速度

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称

2.2 换源

切换为国内镜像源,获取以后所有文件更快下载速度

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

查看是否切换成功

pip config list

在这里插入图片描述

2.3 在PyCharm中安装

在这里插入图片描述

3. 综合案例

创建一个自定义包,名称为:my_utils (我的工具)
在包内提供2个模块

  • str_util.py (字符串相关工具,内含:)
    • 函数:str_reverse(s),接受传入字符串,将字符串反转返回
    • 函数:substr(s, x, y),按照下标x和y,对字符串进行切片
  • file_util.py(文件处理相关工具,内含:)
    • 函数:print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象
    • 函数:append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中

构建出包后,尝试着用一用自己编写的工具包。

  1. 新建文件夹 my_utils
  2. 在文件夹下新建三个文件 __init__.py str_util.py file_util.py

如图所示
在这里插入图片描述
其中__init__.py为空

str_util.py 内容如下

"""
str_util.py (字符串相关工具,内含:)函数:str_reverse(s),接受传入字符串,将字符串反转返回函数:substr(s, x, y),按照下标x和y,对字符串进行切片
"""def str_reverse(s):"""str_reverse(s),接受传入字符串,将字符串反转返回:param s: 传入的字符串:return:  反转后返回的字符串"""s = s[::-1]return sdef substr(s, x, y):"""substr(s, x, y),按照下标x和y,对字符串进行切片:param s: 传入的字符串:param x: 切片的起始位置(包含):param y: 切片的结束位置(不包含):return:  切片后的新字符串"""s = s[x:y]return s# if __name__ == '__main__':
#     print(str_reverse('abcdefg'))  # 'gfedcba'
#     print(substr('abcdefg', 2, 5))  # 'cde'

file_util.py内容如下

"""
file_util.py(文件处理相关工具,内含:)函数:print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象函数:append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中
"""def print_file_info(file_name):"""print_file_info(file_name),接收传入文件的路径,打印文件的全部内容,如文件不存在则捕获异常,输出提示信息,通过finally关闭文件对象:param file_name: 传入文件的路径:return:  无返回值"""try:f = open(file_name, 'r', encoding='UTF-8')except Exception as e:print(f'打开文件失败:{e}')else:# 打开成功,打印全部内容for line in f:print(line)f.close()def append_to_file(file_name, data):"""append_to_file(file_name, data),接收文件路径以及传入数据,将数据追加写入到文件中:param file_name: 传入文件的路径:data: 需要追加到文件中的数据:return:  无返回值"""f = open(file_name, 'a', encoding='UTF-8')f.write(data)f.close()# if __name__ == '__main__':
#     # print_file_info(r'D:\YuanMa\html\y-k-q\Python\day01-jc\1.txt')
#     append_to_file(r'D:\YuanMa\html\y-k-q\Python\day01-jc\1.txt',
#                    'hhhhhhhhhhhhh\ndddddddddddd')

测试模块内容为

from my_utils import file_util
from my_utils import str_utilprint(str_util.str_reverse('abcdefg'))  # 'gfedcba'
print(str_util.substr('abcdefg', 2, 5))  # 'cde'file_util.print_file_info(r'D:\YuanMa\html\y-k-q\Python\day01-jc\1.txt')
file_util.append_to_file(r'D:\YuanMa\html\y-k-q\Python\day01-jc\1.txt', 'aaaaaaaaaa')
file_util.print_file_info(r'D:\YuanMa\html\y-k-q\Python\day01-jc\1.txt')
http://www.dinnco.com/news/69457.html

相关文章:

  • 青岛专业做网站优化百度权重查询网址
  • 长丰县住房和城乡建设局网站网络推广运营途径
  • 手机网站制作注意事项百度推广广告公司
  • 大学计算机网页制作步骤西安seo诊断
  • 南宁网站建设推广优化优化关键词排名
  • 建设网站的目的是什么嘉定区整站seo十大排名
  • 做网站二维码螺蛳粉的软文推广
  • 广州网站建设360网站优化个人模板建站
  • 麻栗坡网站建设百度软件下载
  • 互站网站源码引流推广犯法吗
  • html网站用什么空间推广渠道怎么写
  • 包头建站百度开户是什么意思
  • 小型企业网站排名前十代刷网站推广链接免费
  • 个人做医疗类网站违法?网络营销策划与推广
  • 上海网站建设自学短视频推广渠道有哪些
  • 单页网站怎么做竞价怎样制作网页设计
  • 河南建设网站公司优化公司排名
  • 南宁网站建设nnit30百度seo正规优化
  • 网站内页做友情链接微信营销的特点
  • 做网站生意竞价推广sem
  • app开发网站建设哪家好手机版谷歌浏览器入口
  • 做logo网站的公司长沙正规关键词优化价格从优
  • 哈尔滨专业做网站百度图片识别搜索引擎
  • 电子商务网站平台建设方案沈阳seo代理计费
  • 建站公司怎么接单厦门seo关键词优化
  • 网站托管公司关键词排名优化怎么样
  • 用jsp做的网站需要什么工具浏览器打开是2345网址导航
  • 网站建设需要哪些工作室整合营销传播方法包括
  • 沈阳营商环境建设局网站上海网站营销seo电话
  • 网站挂载百度关键词模拟点击软件