循环
在 Python 中,循环是一种重要的控制结构,用于重复执行一组语句。Python 提供了两种主要的循环结构:for 循环和 while 循环。
for 循环
for 循环是 Python 中用于迭代访问序列元素的重要工具。通过 for 循环,你能够方便地遍历列表、元组、字符串等可迭代对象的元素,执行特定的代码块。
for 循环的基本语法如下:
for 变量 in 可迭代对象:
# 执行这里的代码块
else:
# 执行这里的代码块
- 变量: 在每次迭代中,可迭代对象中的一个元素会被赋值给变量。你可以使用这个变量在代码块中进行操作。
- 可迭代对象: 任何可以被迭代的对象,例如列表、元组、字符串等。
for循环会按顺序迭代可迭代对象中的元素。 - else: 循环结束之后执行的代码。
- 循环语句同样有缩进的要求。
下面是一个简单的例子,演示如何使用 for 循环遍历列表中的元素:
for i in range(5):
print(i)
else:
print("end")
这段代码会输出:
0
1
2
3
4
end
执行过程
for 循环的工作原理是,它会依次取出可迭代对象中的每个元素,并将元素赋值给指定的变量,然后执行循环体中的代码块。这个过程会一直持续,直到可迭代对象中的所有元素都被访问完。
让我们通过一个简单的例子来理解 for 循环的工作原理:
for num in range(1, 6):
square = num ** 2
print(f"{num} 的平方是 {square}")
这段代码会输出:
1 的平方是 1
2 的平方是 4
3 的平方是 9
4 的平方是 16
5 的平方是 25
在每次迭代中,num 变量都被赋值为 numbers 列表中的一个元素,然后计算平方并输出。
range() 函数与 for 循环结合
range() 函数是 Python 中常用的生成数字序列的函数。结合 for 循环,range() 可以用于指定循环的次数或遍历一定范围的数字。range() 的基本语法如下:
range(start, stop, step)
三个参数只可能为整型数值
- start 序列起始值,默认为 0,可选值。
- stop 序列终止值,不包含在序列中。
- step 步长,即两个相邻数字之间的差值,默认为 1;也为可选值。
根据上面的说明,range 函数可以大致有三种调用方式:
range(stop):从0开始到stop-1结束,循环stop次;range(start, stop):从start开始到stop-1结束,循环stop-start次;range(start, stop, step):从start开始到stop-1结束,每次循环步长为step, 如果step为正数,需要满足stop>start,否则要求stop<start。
这里可以用数学中区间来描述start与stop的范围 [start, stop),即左闭右开。
示例演示
利用 for 循环计算从1加到100的总和。
summ = 0
for i in range(1, 101):
summ += i
print(f"1到100的总和为{summ}")
利用 for 循环打印出1-20以内所有的奇数。
""" 利用步长 """ for i in range(1, 21, 2): print(i)""" 利用if条件语句与 for循环语句的嵌套 """ for i in range(21): if i % 2 == 1: print(i)
依次输入期末考试的各科成绩,总计算出平均值。
n = int(input("输入学科数量:"))
score = 0
for i in range(n):
x = int(input("输入第%d科成绩:" %(i+1)))
score = score + x
print("平均成绩为:%.2f" %(score/n))
嵌套循环
for 循环可以嵌套在其他 for 循环内,形成嵌套循环。嵌套循环在处理二维结构(例如二维列表)或需要遍历多个维度的情况下非常有用。以下是一个简单的例子:
for i in range(3):
for j in range(2):
print(f"({i}, {j})")
这段代码会输出:
(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
示例演示
利用 for 循环的嵌套,打印出乘法口诀表。
for i in range(1, 10):
for j in range(1, i+1):
print(f'{j}x{i}={i*j}', end=" ")
print("")
while 循环
while 循环是 Python 中的一种迭代结构,用于重复执行一组语句,直到指定的条件不再满足。它提供了一种灵活的方式来处理需要多次执行的任务。
while 循环的基本语法如下:
while 条件:
# 循环体
# 在每次迭代中,当条件为真时,执行循环体
条件 是一个表达式,当这个表达式的值为真时,循环体将会被执行。当条件为假时,循环结束。
示例演示
以下是一个简单的示例,演示了 while 循环的基本用法:
count = 0
while count < 5:
print(f"Count: {count}")
count += 1
在这个例子中,count 初始化为 0。while count < 5: 表达式检查 count 是否小于 5,如果是真,则执行循环体。在每次循环中,打印 count 的值,并将 count 增加 1。当 count 达到 5 时,循环结束。
循环中的 else 语句
while 循环也支持 else 语句,它在循环条件变为假时执行,除非循环被中断。以下是一个使用 else 的示例:
count = 0
while count < 5:
print(f"Count: {count}")
count += 1
else:
print("Loop completed.")
在这个例子中,当 count 不再小于 5 时,else 语句将被执行,输出 Loop completed.。
无限循环
无限循环也叫死循环,在某些情况下,需要一直循环下去来保证程序不间断的运行下去,在 Python 中可以使用 while True: 或者 while 1:实现无限循环。
while True:
# 无限循环
print("I am looping.")
循环控制
在 Python 编程语言中,break 和 continue 是两个用于控制循环执行的关键字。它们分别用于中断循环和跳过当前迭代,使程序更加灵活和高效。
- break: 完全中断循环,跳出循环体。
- continue: 跳过当前迭代,继续下一次迭代。
如果有循环嵌套,这两个关键字只在其所处的那一层循环发生作用,不会影响该层循环的外部和内部循环。
break 关键字
break 是一个用于中断循环的关键字。当 break 语句被执行时,循环会立即终止,程序将跳出循环体,继续执行循环之后的代码。
while 条件:
# 循环体
if 某个条件:
break # 中断循环
# 循环体的其余部分
for 变量 in 可迭代对象:
# 循环体
if 某个条件:
break # 中断循环
# 循环体的其余部分
让我们通过一个简单的示例来说明 break 的用法。假设我们要在一个列表中查找某个特定的元素:
A博物馆由于展出的内容比较受欢迎,所以在参观高峰的展出期间采取限流的文案保证馆内不会过于拥挤。具体文案是,参观人员在馆外排队依次进入,管理人员每隔5分钟打开隔离带开放观众进入,同时会进行计数,当本次进入人员达到20人时,会关闭隔离带,其它观众需要等待下一轮开放。
count = 0
while True:
count = count + 1
print("进入%d位观众。" % count)
if count == 20:
break
else:
print("停止进入")
上述代码的else部分不会执行,这是因为break是中断整个循环,else也属于循环的一部分。
进入1位观众。
进入2位观众。
进入3位观众。
进入4位观众。
进入5位观众。
进入6位观众。
进入7位观众。
进入8位观众。
进入9位观众。
进入10位观众。
进入11位观众。
进入12位观众。
进入13位观众。
进入14位观众。
进入15位观众。
进入16位观众。
进入17位观众。
进入18位观众。
进入19位观众。
进入20位观众。
continue 关键字
continue 是一个用于跳过当前迭代的关键字。当 continue 语句被执行时,循环会跳过当前迭代的剩余部分,直接进入下一次迭代。
while 条件:
# 循环体
if 某个条件:
continue # 跳过当前迭代
# 循环体的其余部分
for 变量 in 可迭代对象:
# 循环体
if 某个条件:
continue # 跳过当前迭代
# 循环体的其余部分
某个连队在训练过程中,为了加强战士执行命令的效率,进行一种特殊的训练方式,教官先说出一个1-9之间的数字,然后战士们开始报数,当报到与这个数有关的数字时,该名战士就不要报数,然后下一个战士从下一个数字继续报数。 假设一个连队有150人,请用程序模拟出这个连队的报数情况。 提示:与这个数有关的数字有两种,第一种为个位上的数字为这个数,第二种为这个数的倍数。
print("请教官说出一个1-9之间任意数字")
n = int(input("数字为:"))
print("开始报数")
for i in range(1, 151):
if i % 10 == n or i % n == 0:
continue
print(i, end=' ')
使用场景
- 跳过不满足条件的迭代: 在循环中,当某个条件不满足时,使用
continue跳过当前迭代。 - 处理特殊情况: 在处理数据时,遇到特殊情况可使用
continue避免执行不必要的代码。
break 和 continue 是 Python 中控制循环执行的两个关键字。它们提供了在循环中灵活控制流程的手段,使得程序在面对不同情况时能够更加高效、清晰地执行。合理使用 break 和 continue 可以使代码更具可读性和可维护性。在编写循环时,根据具体需求选择使用 break 或 continue,能够更好地实现代码的逻辑。