我们之前讲过可利用 for 循环来完成需要重复处理的相同任务,但除了 for 循环之外,我们还可以使用 while 循环来实现类似的功能。
它的语法格式如下:
while 判断条件:
执行语句块…
示例代码如下:
In [1]: list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] #定义一个列表
In [2]: count = 0
...: while count < len(list1): #使用内置函数len ()来获取列表的长度
...: tmp = listl[count] *2
...: print(tmp)
...: count = count + 1
...:
2
4
……(省略部分输出行)
18
20
为了让读者对 while 循环有更多感性认识,我们再列举一个判断列表元素奇偶性的复合小程序,参见【例 1】。
【例 1】利用 while 循环判断列表元素的奇偶性(while-loop.py) 程序执行结果为:
numbers = [34, 78, 13, 65, 10, -8]
even = []
odd = []
while len(numbers)>0:
num = numbers.pop()
if (num%2 == 0):
even.append(num)
else:
odd.append(num)
print("Even:", even)
print("Odd:",odd)
程序执行结果为:
Even:[-8, 10, 78, 34]
Odd:[65, 13]
本例把前面学到的 if-else 和 while 循环结合起来了。第 02 行和第 03 行分别创建了两个空列表。如果我们利用前面学到的多赋值规则,可以把这两行代码合并为 1 行,具体如下:
even, odd = [], []
第 05 行利用了列表对象的 pop( ) 方法。该方法的默认索引值 index 为 -1,即弹出倒数第 1 个元素,然后赋值为 num。后面的 if-else 框架则根据 num 的奇偶性,利用列表的 append( ) 方法分别将元素添加到 even 或 odd 列表中。