python循环嵌套有趣案例,python中循环语句可以嵌套使用吗
本文主要介绍Python中嵌套循环的细节。嵌套循环是外部循环,主要部分是内部循环。内环或外环可以是任何类型。下面详细介绍,有需要的朋友可以参考一下。
00-1010 1什么是嵌套循环2 Python嵌套for循环2.1嵌套循环打印模式2.2 while loop in for循环2.3练习:打印5行3列星形的矩形模式3中断嵌套循环4继续嵌套循环5使用列表理解的单行嵌套循环6 Python 6.1嵌套while循环while循环7 Python中什么时候使用嵌套循环?
目录
所谓嵌套循环,是指外层循环的主体部分是内层循环。内部循环或外部循环可以是任何类型,例如while循环或for循环。例如,外部For循环可以包含while循环,反之亦然。外部循环可以包含多个内部循环。链条没有限制。
在嵌套循环中,迭代次数等于外层循环中的迭代次数乘以内层循环中的迭代次数。在外部循环的每次迭代中,内部循环执行其所有迭代。对于外部循环的每次迭代,内部循环在外部循环可以继续下一次迭代之前重新启动并完成其执行。嵌套通常用于处理多维数据结构,例如打印二维数组和遍历包含嵌套列表的列表。嵌套是控制流语句的一部分,可以帮助你理解Python的基础知识。
1 什么是嵌套循环
在Python中,for循环用于迭代序列,如列表、字符串、元组和其他可迭代对象,如范围。在Python中使用嵌套for循环的语法:
#外部for循环
对于序列中元素
#内部for循环
对于序列:中元素
内部for循环的主体
外部for循环体
在这个例子中,我们在for循环中使用for循环。在这个例子中,我们打印乘法表的前十个数字。
的外部循环使用range()函数迭代前十个数字。对于每个外部数字,内部For循环将执行十次。在内部循环的主体中,我们将打印外部数字和当前数字的乘积。内环只是外环的主体。示例:用Python写了一个嵌套的for循环程序来打印乘法表。
#外部循环
对于(1,11):范围内的I
#嵌套循环
#从1到10迭代
对于范围(1,11):中的j
#打印倍增
print(i * j,end= )
打印()
输出:
在这个程序中,外部for循环迭代从1到10的数字。Range()返回10个数字。所以外部循环的总迭代次数是10。在嵌套循环的第一次迭代中,数字为1。下一次,就是2。以此类推,直到10。接下来,对于外部循环的每次迭代,内部循环将执行十次。内部循环也会执行10次,因为我们打印的乘法表最多是10。在内循环的每次迭代中,我们计算两个数的乘积。
2 Python 嵌套 for 循环
嵌套的另一个最常见的用途是打印各种星形和数字图案。让我们看看如何使用嵌套循环在Python中打印以下模式。
行数=5
#外厕所
p
for i in range(1, rows + 1):
# inner loop
for j in range(1, i + 1):
print("*", end=" ")
print()
- 在这个程序中,外循环是打印的行数。
- 行数是五,所以外循环会执行五次。
- 接下来,内部循环是每行中的总列数。
- 对于外部循环的每次迭代,列计数都会增加 1。
- 在外循环的第一次迭代中,列数为 1,下一次为 2。依此类推。
- 内部循环迭代等于列数。
- 在内部循环的每次迭代中,我们打印 star。
2.2 在 for 循环中的while循环
在一种循环中使用另一种类型的循环非常常见且很有帮助。 我们可以在 for 循环中放置一个 while 循环。
假设我们想将列表中的每个名称重复五次:
- 在这里,我们将使用外部 for 循环迭代列表。
- 外层for循环每次迭代,内层for循环执行5次,打印当前名称5次。
# outer loopfor name in names:
# inner while loop
count = 0
while count < 5:
print(name, end= )
# print(name)
# increment counter
count = count + 1
print()
输出:
2.3 实践:打印一个带有 5 行 3 列星形的矩形图案
打印以下星形矩形:
# 5 rowsfor name in range(5):
# 3 column
for j in range(3):
print(*, end=)
print()
3 打破嵌套循环
break
语句用于循环内部退出循环。 如果在嵌套循环内使用 break 语句(在另一个循环内循环),它将终止最内层循环。
在下面的示例中,我们有两个循环。 外部 for 循环使用 range() 函数迭代前四个数字,内部 for 循环也迭代前四个数字。 如果外部编号和内部循环的当前编号相同,则中断内部(嵌套)循环。
for i in range(4):for j in range(4):
if j == i:
break
print(i, j)
输出:
4 继续嵌套循环
continue
语句跳过当前迭代并移动到下一个迭代。 在 Python 中,当循环内遇到 continue 语句时,它会跳过它下面的所有语句并立即跳转到下一次迭代。
在下面的示例中,我们有两个循环。 外部 for 循环迭代第一个列表,内部循环也迭代第二个数字列表。如果外部编号和内部循环的当前编号相同,则移动到内部循环的下一次迭代。
first = [2, 4, 6]second = [2, 4, 6]
for i in first:
for j in second:
if i == j:
continue
print(i, *, j, = , i * j)
输出:
5 使用列表理解的单行嵌套循环
例如,如果您有两个列表并想要获取它们的所有组合,为了实现这一点,您需要使用两个嵌套循环,如下所述。
first = [2, 3, 4]second = [20, 30, 40]
final = []
for i in first:
for j in second:
final.append(i+j)
print(final)
我们可以使用列表压缩和嵌套循环编写更快速、更紧凑的代码,
如下所示:
first = [2, 3, 4]second = [20, 30, 40]
final = [i+j for i in first for j in second]
print(final)
输出:
代码编写思路:
- 首先,编写一个外部 for 循环,它将迭代第一个列表,如 [for i in first]。
- 接下来,编写一个内部循环,它将在外部循环之后迭代第二个列表,例如
[for i in first for j in second]
。 - 最后,计算外数和内数之和,如
[i+j for i in first for j in second]
。 - 最后,将结果存储在一个新列表中,例如 final = [i+j for i in first for j in second]。
下面让我们看看其他的例子:
在这个例子中,我们将在列表中使用两个 for 循环,最终结果将是一个列表列表。 我们不会在每个列表中包含相同的数字。 我们将使用 if 条件过滤它们。
final = [[x, y] for x in [10, 20, 30] for y in [30, 10, 50] if x != y]print(final)
输出:
6 Python中的嵌套while循环
在 Python 中,while 循环语句在特定条件为真时重复执行代码块。 当数字迭代不固定时,我们使用 while 循环。在本节中,我们将了解如何在另一个 while 循环中使用 while 循环。在 Python 中编写嵌套的 while 循环语句的语法如下:
while expression:while expression:
statement(s)
statement(s)
在下面例子中,我们将在每行打印前 10 个数字 5 次。
i = 1while i <= 5:
j = 1
while j <= 10:
print(j, end=)
j = j + 1
i = i + 1
print()
输出:
6.1 While 循环内的 for 循环
有时在另一种循环中使用一种循环会很有帮助。 我们可以在while循环里面放一个for循环。假设我们想要打印从 1 到 100 的所有完美数字。
- 在这里,我们将使用
while
循环迭代前 100 个数字。 - 在外部while循环的每次迭代中,内部for循环从1到当前外部数字执行,以检查当前数字是否为完美数字。(完美数字是一个数学概念,感兴趣的读者可再深入查询)
print(Show Perfect number fom 1 to 100)n = 2
# outer while loop
while n <= 100:
x_sum = 0
# inner for loop
for i in range(1, n):
if n % i == 0:
x_sum += i
if x_sum == n:
print(Perfect number:, n)
n += 1
输出:
7 何时在 Python 中使用嵌套循环?
- 当您有需要通过相同函数循环的嵌套数组或列表时,嵌套循环很方便。
- 当您想使用行和列打印不同的星形和数字模式时。
记住时间复杂度。 让我们通过 Python 中嵌套 for 循环如何工作的示例来理解这一点。我们使用 for 循环迭代序列或可迭代的给定元素。 就像我在列表中一样。 这里的时间复杂度是 O(n),因为我们正在迭代列表中的所有项目。执行步骤(迭代)的数量决定了循环的时间复杂度。当您使用嵌套循环并且外部和内部循环都在没有任何 if 条件的情况下运行时,时间复杂度为 O(n^2),因为对于所有 n 个元素,代码都会执行 n 次。
numbers = [[1, 2, 3], [4, 5, 6]]cnt = 0
for i in numbers:
for j in i:
print(iteration, cnt, end=: )
print(j)
cnt = cnt + 1
输出:
如果我们在内部循环中给出一个条件,该条件将在某些元素之后停止执行,并且不执行内部循环或外部循环的所有 n 次迭代,那么它的时间复杂度会更小。
当我们没有更好的选择时使用嵌套循环,请记住编写高效且紧凑的代码远胜于编写复杂的代码
到此这篇关于Python中的嵌套循环详情的文章就介绍到这了,更多相关Python嵌套循环内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。