Python中的循环构造
循环用于重复执行程序中的相同代码。Python提供了两种类型的循环结构:
while语句
声明
1)while语句
其语法为:
while condition: #条件是布尔表达式返回True或False STATEMENTs BLOCK 1 [else: #while的可选部分 STATEMENTs BLOCK 2]
我们可以看到,虽然看起来像if语句。该语句以关键字while开头,后跟布尔条件,后跟冒号(:)。接下来是的块statement(s)。
statement(s)块1中的in继续执行直到条件保持为True;一旦条件变为False并且如果else子句被写入while,则else将被执行。
示例:循环打印编号。从1到10
i=1 while (i <=10): print i, i = i+1 #可以写成i+=1
输出结果
1 2 3 4 5 6 7 8 9 10
在上面的示例中,第一个语句初始化了变量(控制循环),然后在评估条件时为True,因此将执行接下来编写的语句块。
块中的最后一条语句可确保在每次执行循环时,循环控制变量都移至终止点附近。如果这没有发生,则循环将继续无限执行。
一旦我变成11,while中的条件将评估为False,这将终止循环。
注意:由于打印后有',',因此所有值将打印在同一行中。
2)声明
其语法为:
For TARGET- LIST in EXPRESSION-LIST: STATEMENT BLOCK 1 [else: #可选块 STATEMENT BLOCK 2]
我们可以看到,虽然看起来像if语句。该语句以关键字while开头,后跟布尔条件,后跟冒号(:)。接下来是的块statement(s)。
statement(s)块1中的in继续执行直到条件保持为True;一旦条件变为False并且如果else子句被写入while,则else将被执行。
示例:循环打印编号。从1到10
for i in range (1, 11, 1): print i,
输出结果
1 2 3 4 5 6 7 8 9 10
让我们了解该语句的执行流程:
该语句引入了一个函数range(),其语法为:range(start,stop,[step]),其中[step]是可选的
range()生成从start到stop-1的值列表。如果给定步骤,则将其添加到生成的值中,以获取列表中的下一个值。
让我们回到for语句:i是变量,它不断获取由range()函数生成的值,并且对i的每个值都使用语句块。当最后一个值分配给i时,循环块最后一次执行,控制权返回到下一条语句。
现在我们可以轻松了解for语句的结果。当提到的步骤是1时,range()从1、2、3、4、5,...,10生成一个列表,我不断获取一次值,然后将其打印在屏幕上。
注意:除range()i(循环控制变量)外,还可以从字符串,列表,字典等中获取值。
示例
for letter in "Python": print "Current Letter:",letter else: print "Coming out of loop"
输出结果
Current Letter: P Current Letter: y Current Letter: t Current Letter: h Current Letter: o Current Letter: n Coming out of loop
到现在为止,您必须已经意识到,for语句的语法也与if语句或while语句相同。
让我们看一下两个循环结构的等效性: