Python条件分支与循环

news2024/12/25 23:57:58

        大家好,当涉及到编写高效和灵活的程序时,条件分支和循环是 Python 中至关重要的概念。它们允许我们根据不同的条件执行不同的代码块,或者重复执行一组语句。条件分支和循环是测试开发工程师在日常工作中经常使用的工具,无论是编写自动化测试脚本、处理测试数据还是构建测试框架,都离不开这些关键概念。

        在本文中,我们将探索 Python 中条件分支和循环的基本知识和用法。我们将了解条件语句如何根据条件的真假来选择性地执行代码。我们还将深入研究不同类型的循环结构,包括 for 循环和 while 循环,以及它们的灵活性和适用场景。

一、条件分支

        Python 的条件分支是一种编程结构,用于根据给定的条件选择性地执行不同的代码块。条件分支语句允许程序根据条件的真假来决定执行哪些代码。

        Python 中的条件分支主要使用 ifelif 和 else 语句来实现。条件分支允许根据给定的条件选择性地执行不同的代码块。下面我将详细介绍 Python 的条件分支语句。

1、if语句

if 语句用于执行一个代码块,当给定条件为真时执行。它的基本语法如下:

if 条件:
    # 执行的代码块

如果条件为真,则执行代码块;否则,跳过该代码块。

以下是一个使用 if 语句的示例:

x = 10
if x > 0:
    print("x 是正数")

在这个例子中,如果 x 的值大于 0,则会执行 print("x 是正数") 这行代码。

2、if-else 语句

if-else 语句用于根据条件的真假执行不同的代码块。它的基本语法如下:

if 条件:
    # 条件为真时执行的代码块
else:
    # 条件为假时执行的代码块

如果条件为真,则执行第一个代码块;否则,执行 else 后面的代码块。

以下是一个使用 if-else 语句的示例:

x = 10
if x > 0:
    print("x 是正数")
else:
    print("x 是非正数")

        在这个例子中,如果 x 的值大于 0,则会执行 print("x 是正数") 这行代码;否则,执行 print("x 是非正数")

3、if-elif-else 语句

if-elif-else 语句用于在多个条件之间进行选择。它的基本语法如下:

if 条件1:
    # 条件1为真时执行的代码块
elif 条件2:
    # 条件2为真时执行的代码块
elif 条件3:
    # 条件3为真时执行的代码块
...
else:
    # 所有条件均为假时执行的代码块

        根据条件的真假,依次检查每个条件,并执行第一个满足条件的代码块。如果所有条件均为假,则执行 else 后面的代码块。

以下是一个使用 if-elif-else 语句的示例:

x = 10
if x > 0:
    print("x 是正数")
elif x < 0:
    print("x 是负数")
else:
    print("x 是零")

在这个例子中,根据 x 的值,将会执行相应的代码块。

二、循环

        Python 中的循环是一种重复执行特定代码块的控制结构。循环使得我们能够有效地处理重复性任务,遍历数据集合或根据条件执行特定操作。

Python 提供了两种主要类型的循环:while 循环和 for 循环。

1、for循环

        在 Python 中,for 循环是一种用于遍历序列(如列表、字符串、元组等)或其他可迭代对象的循环结构。它允许我们逐个访问序列中的元素,并针对每个元素执行特定的代码块。下面我将详细介绍 Python 中的 for 循环。

for 循环的基本语法如下:

for 变量 in 序列:
    # 执行的代码块

        在每次迭代中,变量会被赋值为序列中的下一个元素,然后执行代码块,直到遍历完所有元素为止。

以下是一个使用 for 循环的示例,遍历并打印列表中的元素:

fruits = ["apple", "banana", "orange"]
for fruit in fruits:
    print(fruit)

        在这个例子中,for 循环遍历了列表 fruits 中的每个元素。在每次迭代中,当前元素会被赋值给变量 fruit,然后执行代码块,打印出水果的名称。

除了列表,for 循环还可以遍历其他类型的序列,如字符串、元组等。例如:

string = "Hello"
for char in string:
    print(char)

在这个例子中,for 循环遍历了字符串 "Hello" 中的每个字符,并打印出字符。

此外,for 循环还可以与内置函数 range() 结合使用,用于生成一系列数字。例如:

for i in range(5):
    print(i)

        在这个例子中,range(5) 生成了一个从 0 到 4 的数字序列。for 循环遍历该序列中的每个数字,并打印出数字。

        在 for 循环中,我们还可以使用 break 语句来提前结束循环,以及 continue 语句来跳过当前迭代,继续下一次迭代。这些控制流程语句可以帮助我们对循环进行更精确的控制。

2、breakcontinue 

break 语句

    break 语句用于立即终止当前所在的循环,不再执行循环中剩余的代码,并跳出循环体,继续执行循环后面的代码。它常用于在满足某个条件时提前结束循环。以下是 break 语句的使用示例:

for i in range(5):
    if i == 3:
        break
    print(i)

        在这个例子中,for 循环遍历了数字序列 range(5) 中的每个数字。当 i 的值等于 3 时,执行 break 语句,终止循环。因此,只会打印出数字 0、1、2。

continue 语句

    continue 语句用于跳过当前迭代中剩余的代码,直接进入下一次迭代。在遇到 continue 语句时,循环会立即跳到下一次迭代,而不再执行本次迭代剩余的代码。以下是 continue 语句的使用示例:

for i in range(5):
    if i == 2:
        continue
    print(i)

        在这个例子中,for 循环遍历了数字序列 range(5) 中的每个数字。当 i 的值等于 2 时,执行 continue 语句,跳过本次迭代中的剩余代码。因此,不会打印出数字 2,而是继续执行下一次迭代,打印出其他数字。

    break 和 continue 语句通常与条件判断结合使用,以根据特定的条件来决定是否终止循环或跳过当前迭代。它们为我们提供了更灵活的控制循环流程的方式,使我们能够根据需要对循环进行精确的控制。

        需要注意的是,break 和 continue 语句在嵌套循环中的行为可能会受到影响。break 语句会结束当前所在的最内层循环,并开始执行下一条语句。而 continue 语句会跳过当前所在的最内层循环的剩余代码,继续下一次最内层循环的迭代。

        总结来说,break 语句用于提前结束循环,而 continue 语句用于跳过当前迭代,继续下一次迭代。这两个语句为我们提供了更多的控制循环执行流程的能力,使我们能够根据具体需求对循环进行精确的控制。

3、while循环

        在 Python 中,while 循环是一种根据条件判断来重复执行代码块的循环结构。只要给定的条件为真(True),循环就会一直执行,直到条件变为假(False)。下面我将详细介绍 Python 中的 while 循环。

while 循环的基本语法如下:

while 条件:
    # 执行的代码块

        在每次迭代中,首先会对条件进行判断。如果条件为真,则执行代码块;然后再次对条件进行判断,以此类推,直到条件为假,循环结束。

以下是一个使用 while 循环的示例,打印数字 0 到 4:

count = 0
while count < 5:
    print(count)
    count += 1

        在这个例子中,count 的初始值为 0。循环首先检查条件 count < 5,由于条件为真,执行代码块,打印出 count 的值。然后 count 的值递增,再次进行条件检查,直到 count 的值达到 5 时,循环结束。

需要注意的是,如果条件一开始就为假,那么循环内的代码块将不会执行,循环直接跳过。

        在 while 循环中,我们可以使用 break 语句来提前结束循环,以及 continue 语句来跳过当前迭代,继续下一次迭代,与 for 循环中的用法相似。

以下是一个使用 while 循环和 break 语句的示例,寻找列表中的特定元素:

fruits = ["apple", "banana", "orange", "pear"]
index = 0
while index < len(fruits):
    if fruits[index] == "orange":
        print("找到了橙子!")
        break
    index += 1
else:
    print("未找到橙子!")

        在这个例子中,循环遍历列表 fruits 中的元素,当找到值为 "orange" 的元素时,执行 break 语句,提前结束循环。如果循环正常结束而没有执行 break,则执行 else 语句块,打印出 "未找到橙子!"。

        当使用 while 循环结合 continue 语句时,可以通过跳过某些迭代来控制循环的执行流程。以下是一个使用 while 循环和 continue 语句的示例,计算列表中的奇数之和:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sum_odd = 0
index = 0

while index < len(numbers):
    if numbers[index] % 2 == 0:
        index += 1
        continue
    sum_odd += numbers[index]
    index += 1

print("奇数之和:", sum_odd)

        在这个例子中,while 循环遍历列表 numbers 中的元素。如果当前元素是偶数,即 numbers[index] % 2 == 0 条件为真,那么执行 continue 语句,跳过当前迭代,继续下一次迭代。这样可以确保只有奇数被累加到 sum_odd 变量中。在每次迭代中,如果当前元素是奇数,那么将其加到 sum_odd 中。然后 index 递增,继续下一次迭代。最终,打印出累加得到的奇数之和。

        在这个例子中,continue 语句帮助我们跳过偶数,只对奇数执行特定的操作。通过使用 continue,我们可以更精确地控制循环的执行流程,以满足特定的需求。

    while 循环也需要谨慎使用,因为如果条件一直为真,循环可能会陷入无限循环的状态,导致程序无法继续执行。因此,我们需要确保条件在循环执行过程中最终会变为假,或者使用 break 语句来提前结束循环。

        总结来说,Python 的 while 循环允许我们根据条件判断重复执行代码块,直到条件为假。它是处理重复性任务和根据条件执行特定操作的重要工具之一。同时,我们可以使用 break 和 continue 语句来对循环进行更精确的控制。

4、循环嵌套

while与for嵌套

当需要在一个循环内嵌套另一个循环时,我们可以将 for 循环和 while 循环结合使用。

以下是一个同时包含 for 循环和 while 循环的例子,用于输出九九乘法表:

for i in range(1, 10):
    j = 1
    while j <= i:
        print(f"{j} × {i} = {j * i}", end="\t")
        j += 1
    print()

        在这个例子中,外层的 for 循环用于控制被乘数 i,取值范围是 1 到 9。对于每个 i 的值,我们使用内层的 while 循环来生成乘法表的一行。内层的 while 循环中,初始时将乘数 j 设为 1。在每次循环中,我们打印出当前的乘法表项,并将 j 递增,直到 j 的值大于等于 i,然后换行。

        通过将 for 循环和 while 循环结合使用,我们可以生成完整的九九乘法表。这个例子展示了如何在一个循环内嵌套另一个循环,并且同时使用了 for 循环和 while 循环,以实现特定的功能。这种循环嵌套的结构可以在需要处理多维数据或复杂的迭代逻辑时非常有用。

while与while嵌套

以下是一个使用 while 循环嵌套 while 循环的例子,用于打印一个矩形图案:

rows = 5
columns = 8
i = 0

while i < rows:
    j = 0
    while j < columns:
        print("*", end=" ")
        j += 1
    print()
    i += 1

        在这个例子中,外层的 while 循环用于控制打印的行数,变量 i 从 0 开始,每次递增 1,直到达到指定的行数 rows。在内层的 while 循环中,我们打印星号 * 字符,控制打印的列数。变量 j 从 0 开始,每次递增 1,直到达到指定的列数 columns

运行此代码将输出如下的矩形图案:

for与for嵌套

以下是一个使用 for 循环嵌套 for 循环的例子,用于输出九九乘法表:

for i in range(1, 10):
    for j in range(1, 10):
        print(f"{j} × {i} = {j * i}", end="\t")
    print()

        在这个例子中,外层的 for 循环用于控制被乘数 i,取值范围是 1 到 9。对于每个 i 的值,内层的 for 循环用于控制乘数 j,也取值范围是 1 到 9。在内层的 for 循环中,我们打印出当前的乘法表项,并使用制表符 \t 分隔每个项。

运行此代码将输出如下的九九乘法表:

5、使用循环的注意事项

在使用 Python 循环时,有几个方面需要注意:

  • 循环条件:确保循环条件正确,并且能够在循环执行过程中最终变为假。否则,循环可能会陷入无限循环的状态,导致程序无法继续执行。

  • 循环变量的更新:在循环体内,确保更新循环变量的值,以便在每次迭代中逐步改变条件,使循环能够最终结束。

  • 循环控制语句的正确使用:了解并正确使用循环控制语句,如 break 和 continuebreak 用于提前结束循环,而 continue 用于跳过当前迭代,继续下一次迭代。

  • 避免无限循环:确保循环的终止条件被满足,避免无限循环。如果循环意外陷入无限循环,可以使用 Ctrl+C 组合键终止程序的执行。

  • 循环效率:在迭代大量数据或执行复杂操作的情况下,要考虑循环的效率。避免在循环内部执行过多的重复计算或频繁的 I/O 操作,可以通过优化算法或缓存结果来提高循环效率。

  • 循环嵌套:当在一个循环内嵌套另一个循环时,要确保内层循环的执行条件和控制正确,避免出现逻辑错误或死循环。

  • 循环的可读性和可维护性:编写清晰、易读的循环代码,使用有意义的变量名和注释来解释循环的目的和逻辑。避免过长的循环体和复杂的嵌套结构,可以考虑将复杂的逻辑拆分成更小的函数或模块。

  • 选择合适的循环类型:Python 提供了多种循环类型,如 for 循环、while 循环和列表推导式等。根据具体的需求和情况选择合适的循环类型,以及使用适当的迭代工具和技巧,可以简化代码并提高效率。

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

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

相关文章

亚马逊SFP有何优势?跨境卖家又该如何申请?

一、亚马逊SFP概述 亚马逊SFP(Seller Fulfilled Prime)是亚马逊为卖家提供的一项物流计划&#xff0c;旨在让满足条件的卖家能够将其产品纳入Prime服务&#xff0c;获得Prime标识&#xff0c;并直接面向Prime会员市场。通过SFP&#xff0c;卖家可以获得亚马逊的流量倾斜&#…

复现Apache HTTPD 多后缀解析漏洞

准备一个纯净的Ubuntu系统 1.先更新一下安装列表 sudo apt-get update 2.安装dockers.io sudo apt install docker.io 查看是否安装成功 docker -v 3. 查看是否安装pip,没有的话就安装 sudo apt-get install python3-pip 4. 安装docker-compose pip install docker-comp…

2024年ai知识库:特点、应用与搭建

随着科技的进步和企业的需要&#xff0c;ai知识库逐渐走进大众的视野并深受企业的青睐&#xff0c;掀起了搭建ai知识库的热潮。LookLook同学就来简单介绍一下关于ai知识库的特点、应用与发展趋势&#xff0c;带你了解2024年的ai知识库。 一、ai知识库的定义与特点 ai知识库是结…

Java基础入门day55

day55 过滤器 简介 过滤器filter&#xff0c;是处于客户端与服务器端目标资源之间的一道过滤技术技术 作用 执行地位在servlet之前&#xff0c;客户发送请求时&#xff0c;会先经过Filter&#xff0c;再到达目标Servlet中。 相应时&#xff0c;会根据执行流程再次反向执行Fil…

网络安全资源和参考指南

由美国国防部&#xff08;DoD&#xff09;发布的《网络安全资源和参考指南》&#xff0c;旨在为美国政府、商业部门以及美国盟友和伙伴之间的安全合作提供有用的、现成的参考资料。文档涵盖了网络安全规范、最佳实践、政策和标准&#xff0c;这些都是由美国联邦政府、国防部以及…

vs2019 - 打包(开发机win10x64 - 目标机win7x64 - debug版程序)

文章目录 vs2019 - 打包(开发机win10x64 - 目标机win7x64 - debug版程序)概述笔记添加组件添加程序集删掉组件时&#xff0c;支持多选加入全部组件后&#xff0c;需要删除的组件如下删掉有依赖的组件去掉有依赖的组件后&#xff0c;编译结果有很明显的区别VS2019打包工程确实有…

【教学类-58-02】黑白三角拼图02(3*3宫格)262144种

背景需求&#xff1a; 已知黑白三角拼图2*2&#xff08;4个拼图&#xff09;一共有256种排列方法 【教学类-58-01】黑白三角拼图01&#xff08;2*2宫格&#xff09;256种-CSDN博客文章浏览阅读142次&#xff0c;点赞5次&#xff0c;收藏12次。【教学类-58-01】黑白三角拼图01…

【qt】初识模型和视图

模型和视图 一.模型和视图的概念1.关系2.模型3.数据4.视图5.特点 二.文件系统模型1.那种数据&#xff1f;2.界面拖放3.创建模型4.模型设置数据5.视图设置模型6.模型索引7.模型操作数据①文件名②文件大小③文件类型④是否是目录⑤文件路径 三.字符串链表模型1.那种数据&#xf…

自动化您的任务——crewAI 初学者教程

今天&#xff0c;我写这篇文章是为了分享您开始使用一个非常流行的多智能体框架所需了解的所有信息&#xff1a;crewAI。 我将在这里或那里跳过一些内容&#xff0c;使本教程成为一个精炼的教程&#xff0c;概述帮助您入门的关键概念和要点 今天&#xff0c;我写这篇文章是为了…

云计算期末复习(1)

云计算基础 作业&#xff08;问答题&#xff09; &#xff08;1&#xff09;总结云计算的特点。 透明的云端计算服务 “无限”多的计算资源&#xff0c;提供强大的计算能力 按需分配&#xff0c;弹性伸缩&#xff0c;取用方便&#xff0c;成本低廉资源共享&#xff0c;降低企…

一位老网工19年前写下的话,激励无数网工人

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 中午好&#xff0c;我是老杨。 2005年的互联网没有如今这么发达&#xff0c;但2005年&#xff0c;有一个技术人写了一段话&#xff0c;感动了无数…

LoadBalancer

一、手写随机负载均衡 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency><!--引入nacos discovery--> <dependency><groupId>com…

vue列表数据添加和删除实例

运行效果如下&#xff1a; 详细代码&#xff1a; 自行添加vue.min.js文件 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0&…

光耦合器的特性和应用概述

光耦合器又称光电耦合器&#xff0c;是现代电子学中必不可少的元件&#xff0c;确保隔离电路之间安全有效的信号传输。本文探讨了光耦合器的特性及其多样化应用&#xff0c;强调了它们在各种电子系统中的关键作用。 什么是光耦合器&#xff1f; 光耦合器是一种设计用于利用光传…

SpringCloud Alibaba详解:打造高可用的分布式系统

SpringCloud Alibaba是一个基于Spring Cloud的微服务开发框架&#xff0c;它集成了阿里巴巴的一系列中间件和工具&#xff0c;能够快速构建高可用的分布式系统。在本文中&#xff0c;将详细介绍如何使用SpringCloud Alibaba来打造高可用的分布式系统&#xff0c;并通过代码案例…

SAP-FICO-凭证编号控制

成本凭证编号KANK 如果自己的公司下没有&#xff0c;直接复制系统原有的就可以。使用系统默认即可。 如果不维护 会报错“CO-凭证编号分配对于成本控制范围****中的商业事务COIN无效” 财务凭证编号FBN1 可以用OBH2批量复制编号范围。 物料账期MMPV 财务账期OB52

TCP—三次握手和四次挥手

目录 一、三次握手和四次挥手的目的 二、TCP可靠的方面 三、什么是三次握手 四、第三次握手的目的 五、什么是四次挥手 六、超时时间的目的 七、SYN包、ACK包、FIN包 八、解决丢包和乱序 九、参考资料 一、三次握手和四次挥手的目的 TCP三次握手的目的主要是为了确保两…

国产AI服务器Tr i - M o d e R A I D 卡,Tri-Mode HBA卡,SAS RAID卡

技术规格 • 主机接口&#xff1a;PCIe 4.0 x8 • 数据接口&#xff1a;SATA/SAS/PCIe三模 • 连接器&#xff1a;2x8 SFF-8654&#xff0c;2x M-Key M.2(2280) • 控制器&#xff1a;IOC 2250 • 硬盘数量&#xff1a;16 2 块SATA/SAS/PCIe • RAID模式&#xff1a;RAID…

蓝牙模块在无人机 ID识别、标准制定发挥的作用及其应用优势和面临的挑战

随着科技的飞速发展&#xff0c;无人机已经广泛应用于航拍、农业、救援、物流等多个领域。而在无人机的通信与控制系统中&#xff0c;蓝牙模块扮演着重要的角色。本文将探讨蓝牙模块在无人机Remote ID识别和标准制定执行中发挥的作用&#xff0c;并分析其应用优势和面临的挑战。…

mysql-索引、存储引擎、事务、锁机制和优化

1. MySQL的索引 1.1 概述 索引是通过某种算法&#xff0c;构建出一个数据模型&#xff0c;用于快速找出在某个列中有以特定值的行&#xff0c;不使用索引&#xff0c;MySQL必须从一条记录开始读完整个表&#xff0c;直到找出相关的行&#xff0c;表越大查询数据所花的时间越多…