循环结构
在Python
中,循环结构用于重复执行一段代码,直到满足某个条件为止。Python
提供了几种循环结构,包括for
循环和while
循环。
while
循环会不断执行代码块,只要指定的条件为真。
while
循环代码结构
while 条件:
条件满足时执行...
...
示例:是打印出1到10之间的所有整数,包括1和10。
实现原理是使用一个变量i
,初始值为0
,在while
循环中,每次循环都把i
的值加1
,并使用print
函数打印i的值。循环条件是i
小于10
。注意事项是使用 end=" "
参数来指定打印输出的分隔符,这样打印出的数字之间会有一个空格分隔
i = 0
while i < 10:
i += 1
print(i, end=" ") # 输出结果 1 2 3 4 5 6 7 8 9 10
while
嵌套使用
while
循环嵌套代码结构
while 条件1:
条件1满足时执行...
...
while 条件2:
条件2满足时执行...
...
示例:如何使用嵌套循环来执行任务。
- 首先,我们初始化一个变量
i
,其值为1
。i
将作为外层循环的循环变量。 - 接下来,我们使用
while
循环来控制i
的值。循环条件是i <= 2
,这意味着i
的值将不超过2
。在每次循环中,我们都会增加i
的值。 - 在每次循环中,我们还将执行内层循环。我们初始化一个变量
j
,其值为0
。j
将作为内层循环的循环变量。 - 同样,我们使用
while
循环来控制j
的值。循环条件是j <= 20
,这意味着j
的值将不超过20
。在每次循环中,我们都会增加j
的值。 - 在内层循环中,我们使用
print
函数来打印当前i
和j
的值。end=" "
表示以两个空格结束打印,而不是默认的换行符。 - 外层循环将重复执行,直到
i
的值达到3
。在内层循环中,j
的值将根据i
的值进行调整,以便在每个i
的值时都打印一组新的数值。
总之,这段代码的目的是展示如何使用嵌套循环来执行任务。这个例子中的任务是简单地打印出一些数值,但你可以根据需要修改它来执行其他任务。
i = 1
while i <= 2:
i += 1
j = 0
while j <= 20:
j += 20
print("i + j = ", i + j, end=" ") # 输出结果 i + j = 22 i + j = 42 i + j = 23 i + j = 43
for
循环用于遍历序列(如列表、元组、字典、集合、字符串)或其他可迭代对象。
for
循环代码结构
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行...
示例:代码的含义是打印出字符串"hello world"中的每个字符,每个字符之间用空格分隔。
实现原理:
- 首先,我们使用
name = "hello world"
变量赋值字符串"hello world"。 - 然后,我们使用
for i in name:
语句遍历字符串中的每个字符。 - 在循环内部,我们使用
print(i, end=" ")
语句打印每个字符,并在每个字符之间添加一个空格。其中,end=" "
表示以空格作为打印结束的标志,防止打印出换行符。
name = "hello world"
for i in name:
print(i, end=" ") # 输出结果 h e l l o w o r l d
待处理数据集,可迭代类型
: 其内容可以一个个依次取出的一种类型
- 字符串
- 列表
- 元组
- …
语法 | 描述 | 示例值 |
---|---|---|
range(num) | 从 0 开始,到 num 结束,不包含 num | range(3) => [0,1,2] |
range(num1, num2) | 从 num1 开始,到 num2 结束,不包含 num2 | range(1, 3) => [1,2] |
range(num1, num2, step) | 从 num1 开始,到 num2 结束,不包含 num2 ,步长 step | range(0, 10, 2) => [0,2,4,6,8] |
实例:代码的含义是打印0到9之间的所有偶数,以空格作为分隔符。
实现原理:range()
函数用于生成一个整数序列,从起始值(0)开始,每次递增步长(2),直到达到结束值(10)但不包括结束值。然后,使用for
循环遍历这个序列,每次循环时,变量i
的值即为当前要打印的偶数。在循环内部,使用print()
函数打印当前的i
值,并使用end=" "
参数设置打印时的分隔符为空格。
用途:这个代码片段通常用于打印0到9之间的所有偶数,可以用于检查数字序列中的偶数。
for i in range(0, 10, 2):
print(i, end=" ") # 输出结果 0 2 4 6 8
循环可以嵌套,即一个循环的循环体中可以包含另一个循环。
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行...
...
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行...
...
实例:for循环打印九九乘法表
实现原理:
range(1, 10)
:这是一个生成从1到10(不包括10)的整数序列的函数。这个序列将用于表示乘法表的行数。for i in range(1, 10):
:使用range(1, 10)
生成的序列,循环遍历每一行。i
变量将表示当前行的行数(范围是1到10)。for j in range(1, i + 1):
: inner loop。使用range(1, i + 1)
生成的序列,循环遍历每一行的每个数字(从1到i+1)。j
变量将表示当前行的每个数字。print(f"{j} * {i} = {j * i}\t", end="")
: 使用format()
函数和print()
函数,打印当前行的每个数字及其乘法结果,并以\t
作为分隔符。注意,这里使用了end="\t"
参数,以便在每次打印时保留一个空格。print()
: 用于换行,将内部循环的当前行内容打印在屏幕上。for
loops: 这段代码使用了两个嵌套的for
循环,共同组成一个多维数组遍历的结构。
注意事项:
- 这段代码在执行时不会返回任何值,但它会打印出1到10之间的所有乘法表。
- 如果需要将结果存储在变量中,或者对结果进行进一步处理,可以考虑将
print()
语句替换为其他数据存储或处理方法。 - 由于代码使用了
end="\t"
参数,每个数字和其乘法结果之间的空格将保留,这可能不是最佳阅读方式。可以通过修改print()
语句中的end
参数来更改输出格式。
# for循环打印九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j} * {i} = {j * i}\t", end="")
print()
临时跳过,中断本次循环,直接进入下一次循环
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行1...
continue
循环满足条件时执行2... # 这里不会执行,进入下一次循环
实例:打印一个包含 5 个整数的序列,每次打印一个整数后立即继续下一轮循环。continue
关键字用于跳过当前循环的剩余代码,并进入下一轮循环。
实现原理:range()
函数生成一个整数序列,for
循环遍历这个序列。在循环内部,print()
函数打印当前的整数,然后使用continue
关键字跳过后续的print()
语句。这样,每次循环都只打印一个整数,然后跳到下一轮循环。
用途:该代码通常用于过滤掉不符合条件的数据,或者仅为了输出结果。例如,在遍历一个列表时,可以使用continue
关键字跳过不需要处理的元素。
注意事项:continue
关键字仅跳过当前循环的剩余代码,而不会影响外层循环的继续执行。如果需要在整个循环结束后执行某些操作,需要在循环内部使用break
关键字。
for i in range(5):
print(i, end=" ")
continue
print("for循环内 continue之后的代码 将不会被执行,进入下一次循环")
直接结束循环
在嵌套循环中,只能作用在所在层循环上,无法对上层循环起作用
使用方法:
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行1...
break
循环满足条件时执行2... # 这里不会执行,并跳出循环
实例:打印一个整数的序列,并使用break
关键字用于结束循环。
实现原理:
- 使用
range(5)
函数创建了一个从0开始的整数序列,直到数字4。 - 使用
for
循环遍历这个序列。 - 在循环内部,使用
print(i)
语句打印当前的整数。 - 使用
break
语句跳出循环。由于print
语句和break
语句是在同一个作用域内执行的,因此当break
执行时,循环会立即退出,不会执行后续的代码。
用途:
这个代码的主要目的是通过循环遍历整数序列,并在每次迭代时打印整数。通过在循环内部使用 break
语句,可以实现只要满足某个条件,循环就会立即退出,不再执行后续的迭代。
for i in range(5):
print(i)
break
print("已经跳出循环,不会被执行了...") # 输出结果 0