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:
        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 循环和列表推导式等。根据具体的需求和情况选择合适的循环类型,以及使用适当的迭代工具和技巧,可以简化代码并提高效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寒秋丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值