Python-高级-飞
发布时间: 2023-07-06
1 程序结构1.1 模块 Module1.1.1 定义

包含一系列数据、函数、类的文件,通常以.py结尾。

1.1.2 作用

让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。

有利于多人合作开发。

1.1.3 导入1.1.3.1 import

(1) 语法:

import 模块名

import 模块名 as 别名

(2) 作用:将模块整体导入到当前模块中

(3) 使用:模块名.成员

1.1.3.2 from import

(1) 语法:

from 模块名 import 成员名

from 模块名 import 成员名 as 别名

from 模块名 import *

(2) 作用:将模块内的成员导入到当前模块作用域中

(3) 使用:直接使用成员名

练习:

(1) 根据下列结构,创建包与模块。

my_project02/

main.pycommon/    __init__.py    list_helper.pyskill_system/    __init__.py    skill_manager.py

(2) 通过导入包的方式,在main.py中调用skill_manager.py中实例方法。

(3) 通过导入包的方式,在skill_manager.py中调用list_helper.py中类方法。

2 异常处理Error2.1 异常

(1) 定义:运行时检测到的错误。

(2) 现象:当异常发生时,程序不会再向下执行,而转到函数的调用语句。

(3) 常见异常类型:

-- 名称异常(NameError):变量未定义。

-- 类型异常(TypeError):不同类型数据进行运算。

-- 索引异常(IndexError):超出索引范围。

-- 属性异常(AttributeError):对象没有对应名称的属性。

-- 键异常(KeyError):没有对应名称的键。

-- 异常基类Exception。

2.2 处理

(1) 语法:

try:    可能触发异常的语句except 错误类型1 [as 变量1]:    处理语句1except 错误类型2 [as 变量2]:    处理语句2except Exception [as 变量3]:    不是以上错误类型的处理语句else:    未发生异常的语句finally:    无论是否发生异常的语句

(2) 作用:将程序由异常状态转为正常流程。

(3) 说明:

as 子句是用于绑定错误对象的变量,可以省略

except子句可以有一个或多个,用来捕获某种类型的错误。

else子句最多只能有一个。

finally子句最多只能有一个,如果没有except子句,必须存在。

如果异常没有被捕获到,会向上层(调用处)继续传递,直到程序终止运行。

练习:创建函数,在终端中录入int类型成绩。如果格式不正确,重新输入。

效果: score = get_score()

print("成绩是:%d"%score)
2.3 raise 语句

(1) 作用:抛出一个错误,让程序进入异常状态。

(2) 目的:在程序调用层数较深时,向主调函数传递错误信息要层层return比较麻烦,所以人为抛出异常,可以直接传递错误信息。

class Wife:    def __init__(self, age):        self.age = age    @property    def age(self):        return self.__age    @age.setter    def age(self, value):        if 20 <= value <= 60:            self.__age = value        else:            # 创建异常  -- 抛出 错误信息            raise Exception("我不要","if 20 <= value <= 60",1001)# -- 接收 错误信息while True:    try:        age = int(input("请输入你老婆年龄:"))        w01 = Wife(age)        break    except Exception as e:        print(e.args) # ('我不要', 'if 30 <= value <= 60', 1001)
3 迭代
每一次对过程的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值。例如:循环获取容器中的元素。
3.1 可迭代对象iterable

(1) 定义:具有__iter__函数的对象,可以返回迭代器对象。

(2) 语法

# 创建:class 可迭代对象名称:    def __iter__(self):        return 迭代器# 使用:    for 变量名 in 可迭代对象:        语句

(3) 原理:

迭代器 = 可迭代对象.__iter__()while True:    try:         print(迭代器.__next__())    except StopIteration:        break

(4) 演示:

message = "我是花果山水帘洞孙悟空"# for item in message:#     print(item)# 1. 获取迭代器对象iterator = message.__iter__()# 2. 获取下一个元素while True:    try:        item = iterator.__next__()        print(item)        # 3. 如果停止迭代则跳出循环    except StopIteration:        break
练习1:创建列表,使用迭代思想,打印每个元素.练习2:创建字典,使用迭代思想,打印每个键值对.
3.2 迭代器对象iterator

(1) 定义:可以被next()函数调用并返回下一个值的对象。

(2) 语法

class 迭代器类名:    def __init__(self, 聚合对象):        self.聚合对象= 聚合对象      def __next__(self):         if 没有元素:            raise StopIteration            return 聚合对象元素

(3) 说明:聚合对象通常是容器对象。

(4) 作用:使用者只需通过一种方式,便可简洁明了的获取聚合对象中各个元素,而又无需了解其内部结构。

(5) 演示:

class StudentIterator:     def __init__(self, data):        self.__dat

微信