Python基础(二十一、模块的使用,else的使用tip)

文章目录

  • 一、模块
    • 什么是模块?
    • 导入模块的语法
    • 注意事项
  • 二、else
    • else与for
    • else与while
    • else与try-except
    • 总结

当我们编写复杂的程序时,往往需要使用到大量的函数和变量。为了提高代码的可维护性和重用性,Python 提供了模块的概念。模块是一个包含了函数、变量和类等定义的文件,可以被其他程序导入和使用。

一、模块

什么是模块?

模块是一种组织代码的方式,它将相关的函数、变量和类放在一个文件中,以便在其他程序中进行导入和使用。使用模块可以将代码分割成逻辑上独立的部分,使得程序更加结构化、可维护和可扩展。

Python 中的模块可以包含函数、类、变量和其他模块等内容。通过使用模块,我们可以将相关的功能打包起来,形成一个独立的单元,供其他程序使用。

导入模块的语法

在 Python 中,我们可以使用 import 关键字来导入模块。导入模块可以让我们在程序中使用其中定义的函数、变量和类等。

基本语法

import module_name

其中,module_name 是要导入的模块的名称。

下面是一个示例,演示了如何导入 math 模块,并使用其中的函数:

import mathresult = math.sqrt(16)
print(result)

在上述示例中,我们使用 import 关键字导入了 Python 内置的 math 模块。然后,我们使用该模块中的 sqrt() 函数计算出 16 的平方根,并将结果打印出来。

除了整个模块的导入,我们还可以选择性地导入模块中的特定功能。

导入模块中特定功能的语法

from module_name import function_name

这样,我们只导入了模块中的特定函数,而不是整个模块。

例如,从 math 模块中导入 sqrt() 函数:

from math import sqrtresult = sqrt(16)
print(result)

在上述示例中,我们使用 from module_name import function_name 的语法,只导入了 math 模块中的 sqrt() 函数。然后,我们直接使用该函数计算出 16 的平方根,并将结果打印出来。

需要注意的是,如果导入的模块中有重名的函数或变量,会导致命名冲突。为了避免这种情况,我们可以使用as关键字来给导入的函数或变量起别名

给导入的函数起别名的语法示例

from module_name import function_name as alias_name

这样,我们可以使用 alias_name 作为函数的别名,避免命名冲突。

例如,给导入的函数起别名:

from math import sqrt as square_rootresult = square_root(16)
print(result)

在上述示例中,我们从 math 模块中导入了 sqrt() 函数,并将其命名为 square_root。然后,我们使用 square_root() 函数计算出 16 的平方根,并将结果打印出来。

注意事项

在导入模块时,有一些注意事项需要我们特别关注:

  • 模块的安装:某些模块可能不是 Python 标准库的一部分,需要通过第三方工具或包管理器进行安装。在导入模块之前,确保已经正确安装了所需的模块。

  • 模块的命名:为了避免命名冲突,尽量选择独特且有意义的模块名称。通常推荐使用小写字母和下划线的组合来命名模块。

  • 循环导入:避免循环导入的情况发生,即模块 A 导入了模块 B,而模块 B 又导入了模块 A。循环导入可能会导致程序的运行时错误。

  • 模块的搜索路径:当导入一个模块时,Python 解释器会按照一定的搜索路径顺序查找该模块。确保模块所在的路径在 Python 的搜索路径中,或者将模块放置在当前工作目录下。

  • 模块的更新和重新加载:如果在运行过程中修改了模块的代码,需要重新加载模块才能生效。可以使用 importlib 模块中的 reload() 函数来重新加载模块。

通过合理地导入和使用模块,我们可以提高代码的可维护性和重用性。同时,在导入模块时需要注意上述的注意事项,以确保程序的正常运行。

二、else

在 Python 中,我们可以在 for 和 while 循环的末尾使用 else 关键字。
这种结合使用的语法可以为循环提供一些额外的逻辑,以在循环正常结束执行特定的代码块

else与for

下面是结合使用 else 的语法示例:

for item in sequence:# 循环体
else:# 循环结束后的代码块

示例:

numbers = [1, 2, 3, 4, 5]for num in numbers:if num == 0:print("遇到了 0,终止循环")breakprint(num)
else:print("循环正常结束,没有遇到 0")

在上述示例中,我们定义了一个列表 numbers,包含了一些整数。然后,我们使用 for 循环迭代列表中的每个元素。在循环体内,我们检查当前元素是否为 0。
如果是 0,则输出一条消息并使用 break 关键字终止循环。
如果循环没有被 break 终止,则执行 else 语句块中的代码,输出一条循环正常结束的消息。
输出:

1
2
3
4
5
循环正常结束,没有遇到 0

else与while

下面是结合使用 else 的语法示例:

while condition:# 循环体
else:# 循环结束后的代码块

示例:

count = 0while count < 5:if count == 3:print("到达计数为 3,终止循环")breakprint(count)count += 1
else:print("循环正常结束,未达到终止条件")

在上述示例中,我们定义了一个初始计数值为 0 的变量 count。然后,我们使用 while 循环执行一些操作。
当 count 的值等于 3 时,输出一条消息并使用 break 关键字终止循环。
如果循环没有被 break 终止,则执行 else 语句块中的代码,输出一条循环正常结束的消息。
输出:

0
1
2
到达计数为 3,终止循环

else与try-except

上一节中有详细学习捕获异常,这一段内容算是回顾吧~
Python基础(二十、捕获异常)
下面是结合使用 else 的语法示例:
以下是结合使用 else 和 try-except 的语法示例:

try:# 可能会引发异常的代码块
except ExceptionType:# 异常处理代码块
else:# 未引发异常时的代码块

示例:

try:num1 = int(input("请输入第一个数字:"))num2 = int(input("请输入第二个数字:"))result = num1 / num2
except ValueError:print("输入的值不是整数,请重新输入")
except ZeroDivisionError:print("除数不能为 0,请重新输入")
else:print(f"{num1} 除以 {num2} 的结果是 {result}")

在上述示例中,我们尝试将用户输入的两个数字相除,并输出计算结果。由于用户可能会输入非整数或除数为 0,因此我们使用 try-except 语句来处理可能出现的异常。
在 try 块中,我们尝试将用户输入的两个数字转换为整数,并计算它们的商。
如果出现了 ValueError 异常,说明用户输入的值不是整数,我们将输出一条错误消息。
如果出现了 ZeroDivisionError 异常,说明除数为 0,我们也将输出一条错误消息。
如果 try 块中的代码没有引发任何异常,则执行 else 块中的代码,输出计算结果。

总结

使用 else 结合 for 和 while 循环时,else 语句块中的代码只在循环正常结束时执行。如果循环被 break 终止,那么 else 语句块中的代码不会被执行。
通过结合使用 else 和 try-except,我们可以在捕获异常的同时,处理未发生异常的情况。这种结合使用的语法可以使代码更加清晰和易于理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608008.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java编程中,保证接口幂等性的实现方案讨论

一、什么是幂等性 数学中的幂等是指f(x) f(f(x))&#xff0c;编程领域的术语是指同一个操作&#xff0c;在重复提交的情况下&#xff0c;最终产生的影响是不变的。举例说&#xff1a; 提交订单时&#xff0c;用户在购物车界面&#xff0c;重复点击“下单”&#xff0c;服务端…

【CUDA】windows下的CUDA安装

一、前言 windows10 下安装 CUDA &#xff0c;首先需要下载安装包&#xff1a; CUDA toolkit&#xff08;工具包&#xff09; 二、安装前的准备 电脑环境检查 通过cmd&#xff0c;输入nvidia-smi 查看自己的驱动版本和支持的CUDA版本&#xff0c;如下图红圈标记位置 下载 …

经典问题 | 线程打印ABA问题

问题描述 有三个线程&#xff0c;分别命名为 ThreadA、ThreadB 和 ThreadC。请设计一个程序&#xff0c;使得它们循环打印输出字符串 "A"、"B"、"C"&#xff0c;打印顺序为 "ABCABCABC..."。要求使用线程同步机制确保按照指定顺序打印…

尤雨溪:框架挖坑靠文档来补,这算 PUA 用户吗?丨 RTE 开发者日报 Vol.122

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文…

JWT令牌(Token)设计

JWT&#xff08;JSON Web Token&#xff09;是一种基于开放标准的令牌&#xff08;Token&#xff09;&#xff0c;用于在不同实体之间传递和验证信息。它由三部分组成&#xff1a;头部&#xff08;Header&#xff09;、载荷&#xff08;Payload&#xff09;和签名&#xff08;S…

Centos Unable to verify the graphical display setup

ERROR: Unable to verify the graphical display setup. 在Linux下安装Oracle时 运行 ./runInstaller 报错 ERROR: Unable to verify the graphical display setup. This application requires X display. Make sure that xdpyinfo exist under PATH variable. No X11 DISPL…

使用Python脚本自动发送个性化微信消息通知

需求&#xff1a; 需要向单位同事定期&#xff08;每周一次&#xff09;发送每个人的业务情况提醒&#xff0c;同时也要发送新的登录token。如果采用邮件大家也不常看&#xff0c;提醒效果很差&#xff0c;同时邮件传输非常不安全&#xff0c;单位很多人邮箱默认密码不改&…

使用开源通义千问模型(Qwen)搭建自己的大模型服务

目标 1、使用开源的大模型服务搭建属于自己的模型服务&#xff1b; 2、调优自己的大模型&#xff1b; 选型 采用通义千问模型&#xff0c;https://github.com/QwenLM/Qwen 步骤 1、下载模型文件 开源模型库&#xff1a;https://www.modelscope.cn/models mkdir -p /data/…

微信小程序中组件内生命周期如何调用组件内方法

在组件的.js文件中使用 Component({/*** 组件的属性列表*/properties: {},/*** 组件的初始数据*/data: {},/*** 组件的方法*/methods:{async getData() {},},/*** 组件的生命周期*/lifetimes:{// 在组件实例进入页面节点树时执行attached:function(){this.getData() //调用}} …

JavaScript-数组-笔记

1.定义数组 数组&#xff1a; 可以存储任意数据类型&#xff0c;元素之间使用英文逗号隔开 1&#xff09;使用new关键字定义数组 var 变量名 new Array() &#xff1b;定义空数组 var 变量名 new Array(数据1&#xff0c;数据2) &#xff1b; 定义有元素的数组 注意&#xff…

Jmeter 性能 —— 吞吐量与并发用户数关系!

1、吞吐量和并发用户数的关系 2、已知在线用户数为3000&#xff0c;算出对应的并发用户数 ①我们常用的确定并发用户数的公式是&#xff1a; C活动用户数操作时间/系统运行时间 如每天最大在线用户数为3000人&#xff0c;每个用户平均操作时间为1小时&#xff0c;系统运行时…

【后退N帧协议】- 协议应用与局限分析

后退N帧协议是计算机网络通信中常用的一种流量控制协议&#xff0c;用于确保数据的可靠传输。本文将深入探讨后退N帧协议的原理、应用场景及局限性。 后退N帧协议的核心思想是在发送端发送数据时&#xff0c;等待接收端返回的确认信号。发送端每次发送N帧数据&#xff0c;并等…

零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇

零基础学Python网络爬虫案例实战 全流程详解 入门与提高篇 零基础学Python网络爬虫案例实战 全流程详解 高级进阶篇 编辑推荐 本书讲解了Python爬虫技术的高级进阶知识&#xff0c;帮助有一定爬虫基础的读者进一步提高爬虫技术。本书详解了突破反爬机制的常用手段以及Scrapy和…

基于SSM+Vue的学校社团管理系统(Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

文章目录 1 靶面尺寸、像元尺寸、分辨率2 相机传感器的感光区尺寸规格1 靶面尺寸、像元尺寸、分辨率 工业相机基本知识理解:靶面尺寸、像元尺寸、分辨率 1、靶面尺寸:由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm 2、像元尺寸:单个感光元件的大小,一般都是正方形…

C# OpenCvSharp DNN FreeYOLO 人脸检测人脸图像质量评估

目录 效果 模型信息 yolo_free_huge_widerface_192x320.onnx face-quality-assessment.onnx 项目 代码 frmMain.cs FreeYoloFace FaceQualityAssessment.cs 下载 C# OpenCvSharp DNN FreeYOLO 人脸检测&人脸图像质量评估 效果 模型信息 yolo_free_huge_widerfa…

Qt隐式共享浅析

一、什么是隐式共享 Qt 的隐式共享&#xff08;implicit sharing&#xff09;机制是一种设计模式&#xff0c;用于在进行数据拷贝时提高效率和减少内存占用。 在 Qt 中&#xff0c;许多类&#xff08;如 QString、QList 等&#xff09;都使用了隐式共享机制。这意味着当这些类…

色标在matplotlib和plottable中

是这样的&#xff0c;我有一个数组[-4.4, -2.8, -2.6, -2.2, -1.1, 1.1, 1.2, 1.3, 3.6, 6.0, 6.4, 12.3]&#xff0c;它需要绘制散点图&#xff0c;点的颜色来代表数值大小&#xff1b;同时&#xff0c;也需要在plottable上作为一列显示&#xff0c;同样用颜色来代表数值的大小…

HarmonyOS应用开发学习笔记 ArkTS 布局概述

一、布局概述 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中&#xff0c;需要遵守以下流程保证整体的布局效果 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大小约束。 二…

【JUC】进程和线程

目录 &#x1f4e2;什么是进程?&#x1f3a1;什么是线程?&#x1f680;进程和线程的区别?&#x1f3a2;Java 线程和操作系统的线程有啥区别&#xff1f;&#x1f396;️JDK21的虚拟线程&#x1f3af;虚拟线程和平台线程的对比 &#x1f4e2;什么是进程? 进程是程序的一次执…