扫码一下
查看教程更方便
它能够迭代任何序列的项目,例如列表或字符串。
for iterating_var in sequence:
statements(s)
如果一个序列包含一个表达式列表,它首先被评估。然后,序列中的第一项被分配给迭代变量iterate_var。接下来,语句块被执行。列表中的每一项都被分配给iterate_var,并且语句块被执行,直到整个序列用完。
#!/usr/bin/python
for letter in 'python': # first example
print 'current letter :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # second example
print 'current fruit :', fruit
print "good bye!"
代码执行结果如下:
current letter : p
current letter : y
current letter : t
current letter : h
current letter : o
current letter : n
current fruit : banana
current fruit : apple
current fruit : mango
good bye!
迭代每个项目的另一种方法是通过索引偏移到序列本身。以下是一个简单的例子 -
#!/usr/bin/python
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print 'current fruit :', fruits[index]
print "good bye!"
上述代码执行结果如下
current fruit : banana
current fruit : apple
current fruit : mango
good bye!
在这里,我们借助了 len() 内置函数,它提供了元组中元素的总数以及 range() 内置函数,为我们提供了实际的迭代序列。
python 支持将 else 语句与循环语句关联
如果else语句与for循环一起使用,则在循环遍历列表时执行else语句。
以下示例说明了 else 语句与搜索 10 到 20 之间的素数的 for 语句的组合。
#!/usr/bin/python
for num in range(10,20):
for i in range(2,num):
if num%i == 0:
j=num/i
print '%d equals %d * %d' % (num,i,j)
break #to move to the next number, the #first for
else:
print num, 'is a prime number'
break
上述代码执行结果如下:
10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number