for 循环
优质
小牛编辑
137浏览
2023-12-01
它能够迭代任何序列的项,例如列表或字符串。
语法 (Syntax)
for iterating_var in sequence:
statements(s)
如果序列包含表达式列表,则首先对其进行求值。 然后,将序列中的第一项分配给迭代变量iterating_var 。 接下来,执行语句块。 列表中的每个项目都分配给iterating_var ,并且执行语句块直到整个序列耗尽。
流程图 (Flow Diagram)
例子 (Example)
#!/usr/bin/python
for letter in <b>'Python':</b> # First Example
print 'Current Letter :', letter
fruits = ['banana', 'apple', 'mango']
for fruit in <b>fruits</b>: # 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()内置函数,以便为迭代提供实际序列。
使用带语句的else语句
Python支持将一个else语句与循环语句相关联
如果else语句与for循环一起使用,则在循环耗尽迭代列表时执行else语句。
如果else语句与while循环一起使用,则在条件变为false时执行else语句。
以下示例说明了else语句与for语句的组合,该语句搜索从10到20的素数。
#!/usr/bin/python
for num in range(10,20): #to iterate between 10 to 20
for i in range(2,num): #to iterate on the factors of the number
if num%i == 0: #to determine the first factor
j=num/i #to calculate the second factor
print '%d equals %d * %d' % (num,i,j)
break #to move to the next number, the #first FOR
else: # else part of the loop
print num, 'is a prime number'
执行上述代码时,会产生以下结果 -
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