循环
在 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
,能够更好地实现代码的逻辑。