目录

for循环

它能够迭代任何序列的项,例如列表或字符串。

语法 (Syntax)

for iterating_var in sequence:
   statements(s)

如果序列包含表达式列表,则首先对其进行求值。 然后,将序列中的第一项分配给迭代变量iterating_var 。 接下来,执行语句块。 列表中的每个项目都分配给iterating_var ,并且执行语句块直到整个序列耗尽。

流程图 (Flow Diagram)

for Python中的循环

例子 (Example)

#!/usr/bin/python
for letter in <b class="notranslate">'Python':</b>     # First Example
   print 'Current Letter :', letter
fruits = ['banana', 'apple',  'mango']
for fruit in <b class="notranslate">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支持将一个e​​lse语句与循环语句相关联

  • 如果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
↑回到顶部↑
WIKI教程 @2018