学习目标:
- 笔记
学习内容:
python模块和包,异常,字符串详解
例如:
1.模块和包
2.异常
3.字符串
学习产出:
提示:这里统计学习计划的总量
例如:
1.python模块和包
模块可以将一些相关联的代码组合在一个.py文件中,包可以将一些相关联的模块组合在一个文件夹中。
模块和包的好处:
- 提高代码可维护性,组织结构清晰易懂。
- 提高代码可重用性,编写代码不必从零开始。当一个模块编写完毕,就可以被其他模块引用。
- 可以避免函数名和变量名的冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己编写模块时,不必考虑名字会不会与其他模块冲突。但也要注意,尽量不要与内置函数名冲突。
模块导入方式:
- import :导入某个模块。以后要使用模块中的函数或者变量,则需要使用模块名.xxx 的形式调用。
- from xxx import xxx :从某个模块中导入某个对象或某个方法等。也可以一次性的从模块中导入 所有方法.使用from xxx import *
- from a import b as c :从a中导入b命名为c,代码中引用b通过c来调用。 记得要写包名
2.异常
导致程序在运行过程中出现非正常中断和退出的错误,我们称异常。大多数的异常都不会被程序处理,而是以错误信息的形式展现出来。
Python内置了一套try…except…finally(else)…的异常处理机制,来帮助我们进行异常处理。
#语法:
try:
代码块
except Exception as ex:
代码块
'''
try....except示例:
将可能发生错误的代码放入try中,产生错误后要做处理放到except中
'''
try:
file = open("test.txt")
print("打开文件:{0}".format(file))
except FileNotFoundErr
print("打开失败")
#捕获多个异常示例:
#使用逗号隔开
try:
file = open("test.txt")
print("打开文件:{0}".format(file))
except (FileNotFoundError,NameError):
print("程序错误")
#输出异常信息示例:
try:
file = open("test.txt")
print("打开文件:{0}".format(file))
except (FileNotFoundError,NameError) as e:
print("程序错误{0}".format(e))
异常类型:
AttributeError --------试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x
IOError ---------------- 输入/输出异常;基本上是无法打开文件
ImportError -----------无法引入模块或包;基本上是路径问题或名称错误
IndentationError -----语法错误(的子类) ;代码没有正确对齐
IndexError -------------下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError ---------------试图访问字典里不存在的键
KeyboardInterrupt —Ctrl+C被按下
NameError ------------尝试访问一个没有申明的变量
SyntaxError ----------- Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError --------------传入对象类型与要求的不符合
UnboundLocalError --试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
ValueError --------------传入一个调用者不期望的值,即使值的类型是正确的
BaseException --------所有异常的基类
SystemExit ------------- 解释器请求退出
KeyboardInterrupt ----- 用户中断执行(通常是输入^C)
Exception --------------- 常规错误的基类
StopIteration ------------迭代器没有更多的值
GeneratorExit ------------生成器(generator)发生异常来通知退出
StandardError ------------所有的内建标准异常的基类
ArithmeticError ------------所有数值计算错误的基类
FloatingPointError ------------浮点计算错误
OverflowError ------------数值运算超出最大限制
ZeroDivisionError ------------除(或取模)零 (所有数据类型)
AssertionError ------------断言语句失败
AttributeError ------------对象没有这个属性
EOFError ------------没有内建输入,到达EOF 标记
EnvironmentError ------------操作系统错误的基类
IOError ------------输入/输出操作失败
OSError ------------操作系统错误
WindowsError ------------系统调用失败
ImportError ------------导入模块/对象失败
LookupError ------------无效数据查询的基类
IndexError ------------序列中没有此索引(index)
KeyError ------------映射中没有这个键
MemoryError ------------内存溢出错误(对于Python 解释器不是致命的)
NameError ------------未声明/初始化对象 (没有属性)
UnboundLocalError ------------访问未初始化的本地变量
ReferenceError ------------弱引用(Weak reference)试图访问已经垃圾回收了的对象
RuntimeError------------ 一般的运行时错误
NotImplementedError ------------尚未实现的方法
SyntaxError Python ------------语法错误
IndentationError------------ 缩进错误
TabError ------------Tab 和空格混用
SystemError------------ 一般的解释器系统错误
TypeError ------------对类型无效的操作
ValueError ------------传入无效的参数
UnicodeError Unicode ------------相关的错误
UnicodeDecodeError Unicode ------------解码时的错误
UnicodeEncodeError Unicode ------------编码时错误
UnicodeTranslateError Unicode ------------转换时错误
Warning ------------警告的基类
DeprecationWarning ------------关于被弃用的特征的警告
FutureWarning ------------关于构造将来语义会有改变的警告
OverflowWarning ------------旧的关于自动提升为长整型(long)的警告
PendingDeprecationWarning ------------关于特性将会被废弃的警告
RuntimeWarning ------------可疑的运行时行为(runtime behavior)的警告
SyntaxWarning ------------可疑的语法的警告
UserWarning ------------用户代码生成的警
3.字符串
字符串中常用的函数: