Python语法基础笔记(六)
2026/5/9 11:07:38 网站建设 项目流程

一、异常

  1. 抛出异常 raise (自己在代码中自定义异常的情况)

    步骤:

    1. 创建一个Exception(‘XXX’)对象,XXX-----异常提示信息

    2. raise抛出这个对象(异常对象)

  2. 捕获异常:

    基本格式:

    try:

    # 1. 可能触发异常的代码块(核心)

    风险代码 # 如:除法、文件操作、网络请求等

    except 异常类型1 [as 异常对象]:

    # 2. 捕获指定类型异常后的处理逻辑

    处理逻辑1 # 如:打印错误、记录日志、兜底操作

    except 异常类型2 [as 异常对象]:

    # 可捕获多个不同类型异常,按顺序匹配

    处理逻辑2

    else:

    # 3. 可选:try块无异常时执行(非必须)

    无异常逻辑 # 如:提示操作成功

    finally:

    # 4. 可选:无论是否异常,最终必执行(非必须)

    收尾逻辑 # 如:关闭文件、释放资源

    注意:

    • as 异常对象:可选,用于获取异常的详细信息(如错误描述、堆栈),常用变量名 e/err;

    • 异常类型需继承自 BaseException(Python 所有异常的基类),常见如 ZeroDivisionError、FileNotFoundError、KeyError 等;

    • 若省略异常类型(except:),会捕获所有异常(不推荐,易隐藏逻辑错误)。

  3. 案例:

    需求: 密码长度不足,就报异常

    分析:用户输入密码,判断密码长度是否大于等于6,小于6位就报异常,即抛出自定义异常,并捕获异常

    注意:捕获异常是为了检测到异常时代码还能继续往下执行,即程序不会停止运行

    代码:

    def check_password(): pwd = input("请输入密码:") if len(pwd) >= 6: return "密码输入正常" raise Exception("密码长度不足,输入失败") try: # 捕获异常 print("密码输入结果:",check_password()) # 调用函数 except Exception as e: print("密码输入异常:",e)

二、模块

  1. 含义:

    模块是python文件中的代码,就是一个py文件,模块名就是文件名,去掉.py后缀,里面定义了函数、类、变量等,需要的时候可以导入使用

  2. 分类:

    1. 内置模块:random、time、os、logging

    2. 第三方模块(第三方库):下载 ---- windows+r进入cmd窗口输入:pip install 模块名

    3. 自定义模块:自己在项目中定义的模块。注意:命名要遵循标识符规定以及变量的命名规范,不要与内置模块起冲突,否则导致模块功能无法使用

  3. 导入模块方式:

    1. import 模块名 :

      语法:import 模块1(,模块2,模块3……)

      注意:可以导入多个模块,但是最好一个模块单独使用一个import

      调用功能:模块名.功能名 & 模块名.变量

    2. from … import… :

      语法:from 模块名 import 功能1,功能2…

      调用功能:直接输入功能即可,不需要添加模块名

      注意:import后面填写需要导入的功能,没有导入,报错;导入函数,只需要函数名,不需要加上()

    3. from ... import * :

      语法: from 模块名 import *

      含义:把模块中的所有内容全部导入

      注意:不建议过多使用from...import...声明,有时候命名冲突会造成一些错误

  4. as 起别名

    1. as 给模块起别名

      语法:import 模块名 as 别名 ----import pytest as pt

      调用:pt.func() & pt.name

    2. as 给功能起别名

      语法: from 模块名 import 功能 as 别名

      调用:from pytest import func as f , name, funb as b

      注意:导入多个功能,使用“,” 逗号将功能与功能隔开,后面的功能也可以取别名:功能名 as 别名

  5. 内置全局变量

    1.语法:

    if __name__ == "__main__":
    1. 作用:用来控制py文件在不同的应用场景执行不通的逻辑

    2. __ name __:

      1. 文件在当前程序执行(即自己执行自己):__ name __ == "__ main __"

        下面的代码会被执行

      2. 文件被当作模块被其他文件导入:__ name __ == 模块名

        下面的代码不会被显示出来

    3. 总结:

      运行方式

      __name__的值

      if内代码是否执行

      直接运行脚本

      "__main__"

      导入为模块使用

      模块名

三、包

  1. 含义:就是项目结构中的文件夹/目录

  2. 与普通文件夹的区别:

    包是含有__ init __.py的文件夹

  3. 作用:将有联系的模块放到同一个文件夹下,有效避免模块名称冲突问题,让结构更清晰

  4. 新建包:pycharm 中右键项目名--> New-->Python Package,创建后文件夹下自动带有__ init __.py的文件

  5. 注意:

    • import 导入包时,首先执行__ init __.py文件的代码;

    • 不建议在此文件写大量代码,尽量保证init的内容简单;

    • __ init __.py文件主要作用:导入这个包内的其他模块

  6. __ all __ : 本质上是一个列表,列表里面的元素就代表要导入的模块

    作用:

    • 可以控制要导入的东西

    • 当使用 from 模块名 import * 时,哪些名称会被导入

    • 仅作用于 from 模块名 import * 语句,对其他导入方式无任何影响

    • 定义形式:__ all __= [字符串1, 字符串2, ...],列表中的字符串必须是模块内已定义的名称(函数、类、变量等)

    使用方式:

    • 先在__ init __.py文件中使用 __ all __= ["register", "login"],列表中代表要引入的模块

    • 然后再在要导入的py文件里面导入from pack import *

    • 注意:* 代表所有,但是使用列表后,只导入列表中的模块了

  7. 包的本质依然是模块,包又可以包含包

  8. 补充总结:

    特性

    __all__

    __name__

    核心作用

    控制import *导入的名称范围

    区分脚本 “直接运行”/“被导入为模块”

    作用对象

    模块的对外接口

    脚本的运行方式

    数据类型

    列表(字符串元素)

    字符串

    影响范围

    from 模块 import *

    整个脚本 / 模块

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询