Python条件分支与循环

        大家好,当涉及到编写高效和灵活的程序时,条件分支和循环是 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:breakprint(i)

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

continue 语句

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

for i in range(5):if i == 2:continueprint(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("找到了橙子!")breakindex += 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 = 0while index < len(numbers):if numbers[index] % 2 == 0:index += 1continuesum_odd += numbers[index]index += 1print("奇数之和:", 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 = 1while j <= i:print(f"{j} × {i} = {j * i}", end="\t")j += 1print()

        在这个例子中,外层的 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 = 0while i < rows:j = 0while j < columns:print("*", end=" ")j += 1print()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.mzph.cn/bicheng/14324.shtml

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

相关文章

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

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

Java 18新特性详细介绍

Java作为一门广泛使用的编程语言&#xff0c;一直在不断地发展和更新。Java 18是Java的最新版本&#xff0c;它引入了许多新特性和改进&#xff0c;使得开发过程更加高效、安全和便捷。本文将详细介绍Java 18的新特性&#xff0c;帮助开发者更好地了解和应用这些新功能。 JEP …

vue详解(4)

1. v-model 原理 原理&#xff1a;v-model本质上是一个语法糖。例如应用在输入框上&#xff0c;就是 value属性 和 input事件 的合写。作用&#xff1a;提供数据的双向绑定。① 数据变&#xff0c;视图跟着变 :value&#xff1b;② 视图变&#xff0c;数据跟着变 input注意&am…

【MySQL数据库】CRUD 增 删 改 查 超详解,有这一篇就够了!

​ ​ &#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【MySQL】探秘&#xff1a;数据库世界的瑞士军刀 目录 ⚗️一.CRUD &#x1f9ea;二.新增&#xff08;Create&#xff09; &#x1f9eb;1.基本操作 &#x1f9ec;2.使用SELECT插入 &#x…

长难句5.24

There is pressure for change from within the profession, but opponents of change among the regulators insist that keeping outsiders out of a law firm isolates lawyers from the pressure to make money rather than serve clients ethically. 在(律师)行业内部也有…

云计算历史、业务驱动因素和术语 (Cloud Computing History, Business Drivers and Terminologies)

云计算的历史与定义 (History and Definition of Cloud Computing) 历史 (History) 云计算的概念化始于很久以前&#xff0c;早在1963年。麻省理工学院从美国国防高级研究计划局获得研究资金&#xff0c;用于开发一种“计算机可同时被两人或更多人使用”的技术。在早期的云计算…

区块链钱包如果丢失了私钥或助记词,资产还能恢复吗?

如果你丢失了区块链钱包的私钥或助记词&#xff08;通常是用于恢复钱包的短语或种子&#xff09;&#xff0c;那么你的资产在大多数情况下是无法恢复的。私钥是访问和控制你在区块链上资产的唯一凭证&#xff0c;而助记词&#xff08;如BIP39标准中的12、18、24个单词的短语&am…

centos常见命令总结

一、【写在前面】 注意到csdn在鼓励作者创作centos常见命令相关的文章&#xff0c;借此机会水一篇博文。 centos作为上个版本国内最常用的开源操作系统&#xff0c;占有量非常恐怖&#xff0c;排个前三应该没有任何疑问。但是我建议直接去学ubuntu&#xff0c;因为主流在用的…

【系统架构师】-案例篇(十五)SOA、微服务与数据库

1、可复用构件应具备哪些属性 可用性&#xff1a;构件必须易于理解和使用。 质量&#xff1a;构件及其变形必须能正确工作。 适应性&#xff1a;构件应该易于通过参数化等方式在不同语境中进行配置。 可移植性&#xff1a;构件应能在不同的硬件运行平台和软件环境中工作。 可变…

Spring Boot实现RabbitMQ监听消息的几种方式

Spring Boot实现RabbitMQ监听消息的几种方式 在现代的分布式系统中&#xff0c;消息队列扮演着至关重要的角色&#xff0c;用于解耦服务之间的通信&#xff0c;实现异步消息传递。而RabbitMQ作为其中一种常用的消息队列服务&#xff0c;在Spring Boot中得到了广泛的应用。本文…

pip(包管理器) for Python

pip是什么 pip是Python的包安装程序&#xff0c;即python包管理器。您可以使用 pip 从Python包索引和其他索引安装包。 1. pip 安装 python 包 pip install 包名 例如&#xff1a;pip install pymssql &#xff1a; 使用pip安装数据库驱动包 pymssql 2.pip 卸载 python 包 pi…

【Axure教程】拖动换位选择器

拖动换位选择器通常用于从一个列表中选择项目并将其移动到另一个列表中。用户可以通过拖动选项来实现选择和移动。这种交互方式在许多Web应用程序中很常见&#xff0c;特别是在需要对项目分组的情况下。 所以今天作者就教大家怎么在Axure用中继器制作一个拖动换位选择器的原型…

告别硬编码:Spring条件注解优雅应对多类场景

一、背景 在当今的软件开发中&#xff0c;服务接口通常需要对应多个实现类&#xff0c;以满足不同的需求和场景。举例来说&#xff0c;假设我们是一家2B公司&#xff0c;公司的产品具备对象存储服务的能力。然而&#xff0c;在不同的合作机构部署时&#xff0c;发现每家公司底…

RedisTemplateAPI:List

文章目录 ⛄介绍⛄List的常见命令有⛄RedisTemplate API❄️❄️添加缓存❄️❄️将List放入缓存❄️❄️设置过期时间(单独设置)❄️❄️获取List缓存全部内容&#xff08;起始索引&#xff0c;结束索引&#xff09;❄️❄️从左或从右弹出一个元素❄️❄️根据索引查询元素❄…

探索 Rust 语言的精髓:深入 Rust 标准库

探索 Rust 语言的精髓&#xff1a;深入 Rust 标准库 Rust&#xff0c;这门现代编程语言以其内存安全、并发性和性能优势而闻名。它不仅在系统编程领域展现出强大的能力&#xff0c;也越来越多地被应用于WebAssembly、嵌入式系统、分布式服务等众多领域。Rust 的成功&#xff0…

Day25:Leetcode:669. 修剪二叉搜索树 + 108.将有序数组转换为二叉搜索树 + 538.把二叉搜索树转换为累加树

LeetCode&#xff1a;669. 修剪二叉搜索树 问题描述 解决方案&#xff1a; 1.思路 2.代码实现 class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root null) {return null;}if (root.val < low) {return trimBST(root.right, low, hi…

Nginx文件解析漏洞复现:CVE-2013-4547

漏洞原理 CVE-2013-4547漏洞是由于非法字符空格和截止符导致Nginx在解析URL时的有限状态机混乱&#xff0c;导致攻击者可以通过一个非编码空格绕过后缀名限制。假设服务器中存在文件1. jpg&#xff0c;则可以通过改包访问让服务器认为访问的为PHP文件。 漏洞复现 开启靶场 …

Energia单片机实验-饮水机模拟

一、要求分析 利用状态机程序思想&#xff0c;使用MSP-EXP430F5529 Launchpad板卡实现以下模拟饮水机的功能。 饮水机是我们生活中常见的家用设备。假设一个简易的饮水机有两个按键&#xff1a;童锁按键[PUSH1]和热水按键[PUSH2]。 按键功能说明&#xff1a; 1.童锁按键&#x…

联盟 | 歌者 AIPPT X HelpLook携手,开启企业高效办公新时代

面对日益增长的工作负荷和追求效率优化的压力&#xff0c;企业知识的积累与传播显得愈发重要。如何系统化地沉淀员工与企业的知识精华&#xff1f;如何快速分享内外部知识&#xff1f;更重要的是&#xff0c;如何在获取这些知识后&#xff0c;迅速将其转化为精美的PPT&#xff…

USB-HID 键盘描述符简介

USB-HID 键盘描述符简介 USB-HID键盘设备描述符&#xff1a; #define DEVICE_DESCRIPTOR_SIZE 0x12 #define USB_CTRL_TEST_SZIE 8 #define CONFIG_DESCRIPTOR_SIZE_DUSB 0x0029 //0x0022//0x0029 #define HID_REPORT_DESCRIPTOR_SIZE_DUSB 0x004…