Python网络爬虫技术与实战
上QQ阅读APP看书,第一时间看更新

1.6.3 循环结构

1.for循环与while循环

for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,若条件不成立则跳出当前for循环。在while循环中,当条件满足时进入循环,之后当条件不满足时,执行完循环体内全部语句后再跳出(而不是立即跳出循环)。

(1)for循环

Python的for循环可以遍历任何序列的元素,如一个列表或者一个字符串。具体的for循环结构图如图1-36所示。

关于for循环结构用法的示例如下所示。

【例1-51】遍历集合


>>>languages = ["C", "C++", "Perl", "Python"] 
>>> for x in languages:
...     print (x)
C
C++
Perl
Python

(2)while循环

值得注意的是,在Python中没有do...while循环。具体的while循环结构图如图1-37所示。

图1-36 for循环结构图

图1-37 while循环结构图

关于while循环结构用法的示例如下所示。

【例1-52】求1到100的和


n = 100
sum = 0
counter = 1
while counter <= n:
    sum = sum + counter
    counter += 1
print("1 到 %d 之和为: %d" % (n,sum))

执行结果如下:


1 到 100 之和为: 5050

2.break语句与continue语句

while循环中的break用于永久终止循环,即不执行本次循环中break后面的语句,直接跳出循环;而while循环中的continue则用于终止本次循环,即本次循环中continue后面的代码不执行,进行下一次循环的入口判断。

(1)break语句

break语句可以跳出for和while的循环体。如果你从for或while循环中终止,那么任何对应的循环else块将不执行。

【例1-53】使用break跳出循环


    for letter in 'Runoob':           # 第一个实例
        if letter == 'b':
break
print ('当前字母为 :', letter)
var = 10                              # 第二个实例
while var > 0:              
        print ('当期变量值为 :', var)
        var = var -1
        if var == 5:
            break
print ("Good bye!")

执行以上脚本,输出结果为:


当前字母为 : R
当前字母为 : u
当前字母为 : n
当前字母为 : o
当前字母为 : o
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
Good bye!

(2)continue语句

continue语句用来跳过当前循环块中的剩余语句,继续进行下一轮循环。

【例1-54】使用continue跳出循环


for letter in 'Runoob':           # 第一个实例
   if letter == 'o':              # 字母为 o 时跳过输出
      continue
   print ('当前字母 :', letter)
var = 10                          # 第二个实例
while var > 0:              
   var = var -1
   if var == 5:                   # 变量为 5 时跳过输出
      continue
   print ('当前变量值 :', var)
print ("Good bye!")

执行以上脚本,输出结果为:


当前字母 : R
当前字母 : u
当前字母 : n
当前字母 : b
当前变量值 : 9
当前变量值 : 8
当前变量值 : 7
当前变量值 : 6
当前变量值 : 4
当前变量值 : 3
当前变量值 : 2
当前变量值 : 1
当前变量值 : 0
Good bye!