news 2026/1/8 7:22:26

Python语法基础笔记(六)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python语法基础笔记(六)

一、异常

  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 *

    整个脚本 / 模块

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/19 20:45:00

Xgboost-shap模型解释分析:揭开模型黑箱的面纱

Xgboost-shap模型解释分析,Xgboost有分类器和回归器两种,shap用于对各种特征重要性可视化,用于对机器模型的解释分析 自带数据集在机器学习领域,我们常常使用各种模型来进行预测和分析。然而,很多时候这些模型就像一个…

作者头像 李华
网站建设 2025/12/19 20:33:52

NPM_配置的补充说明

原来的registry.npm.taobao.org已替换为registry.npmmirror.com npm config set registry https://registry.npmmirror.com确认配置已经生效 npm config get registry若需要恢复默认的官方源,可以执行以下命令 npm config set registry https://registry.npmjs.o…

作者头像 李华
网站建设 2025/12/27 11:15:25

halcon窗口显示带有箭头的直线

前言 我们在开发C#上位机的时候,有时候会使用Halcon控件,在Halcon控件上会有绘制带有箭头的直线的需求,本文就来介绍如何实现。 Halcon代码实现 dev_close_window () dev_open_window (0, 0, 512, 512, black, WindowHandle) disp_arrow (…

作者头像 李华
网站建设 2025/12/19 20:30:20

Langchain-Chatchat结合GPU加速推理,实现高性能问答服务

Langchain-Chatchat 结合 GPU 加速推理,打造高性能本地问答系统 在企业知识管理日益复杂的今天,如何让员工快速获取分散在成百上千份文档中的关键信息,已成为组织效率提升的瓶颈。一个常见的场景是:新员工想了解公司的差旅报销标准…

作者头像 李华