Python有两个基本的循环命令:
-
while循环
-
for循环
while循环
使用while循环,我们可以在条件为真的情况下执行一组语句。
示例,打印i,只要i小于6:
i = 1
while i < 6:
print(i)
i += 1
注意:记得增加i的值,否则循环将永远继续下去。
while循环要求相关的变量已经准备好,例如在这个示例中,我们需要定义一个索引变量i,并将其设置为1。
break语句
使用break语句,即使while条件为真,我们也可以停止循环:
示例,当i为3时退出循环:
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
continue语句
使用continue语句,我们可以停止当前的迭代,并继续下一次迭代:
示例,如果i为3,则继续下一次迭代:
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
else语句
使用else语句,我们可以在条件不再为真时运行一块代码:
示例,在条件不再为真时打印一条消息:
i = 1
while i < 6:
print(i)
i += 1
else:
print("i不再小于6")
Python For循环
For循环用于遍历一个序列(可以是列表、元组、字典、集合或字符串)。
这与其他编程语言中的for关键字不太相似,更像是其他面向对象编程语言中的迭代器方法。
使用for循环,我们可以执行一组语句,对于序列中的每个项目执行一次。
示例,打印水果列表中的每个水果:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
for循环不需要预先设置索引变量。
遍历字符串
即使字符串也是可迭代对象,它们包含一系列字符:
示例,循环遍历单词"banana"中的字母:
for x in "banana":
print(x)
break语句
使用break语句,我们可以在循环遍历所有项目之前停止循环:
示例,当x为"banana"时退出循环:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
if x == "banana":
break
示例,当x为"banana"时退出循环,但这次break在打印之前:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
break
print(x)
continue语句
使用continue语句,我们可以停止当前迭代的循环,并继续下一次迭代:
示例,不要打印"banana":
fruits = ["apple", "banana", "cherry"]
for x in fruits:
if x == "banana":
continue
print(x)
range()函数
要循环遍历一组代码指定的次数,可以使用range()函数,
range()函数返回一个数字序列,默认从0开始,递增1(默认),并在指定数字结束。
示例,使用range()函数:
for x in range(6):
print(x)
请注意,range(6)不是值从0到6,而是值从0到5。
range()函数默认从0开始,但可以通过添加一个参数来指定起始值:range(2, 6),这表示从2到6的值(但不包括6):
示例,使用起始参数:
for x in range(2, 6):
print(x)
range()函数默认递增1,但可以通过添加第三个参数来指定递增值:range(2, 30, 3):
示例,递增3(默认是1):
for x in range(2, 30, 3):
print(x)
for循环中的else
for循环中的else关键字指定了一个代码块,该代码块在循环结束时执行:
示例,打印从0到5的所有数字,并在循环结束时打印一条消息:
for x in range(6):
print(x)
else:
print("最后完成了!")
注意:如果循环被break语句停止,else块将不会执行。
嵌套循环
嵌套循环是一个循环内部的循环。
"内部循环"将在"外部循环"的每次迭代中执行一次:
示例,为每个水果打印每个形容词:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
pass语句
for循环不能空着,但是如果由于某种原因,你的for循环没有内容,可以加入pass语句以避免出错。
示例
for x in [0, 1, 2]:
pass