Python中的循环语句

循环语句允许多次执行一个语句或语句组。Python支持两种循环for循环和while循环:

for循环

for循环可以多次执行一系列语句并且管理循环变量的代码也很简洁。for循环能迭代序列类型的元素,例如:列表、元组、Range和字符串。

for循环的语法

for iterating_var in sequence:
   statements(s)

例如:

for letter in 'Python':     # 示例一
   print('Current Letter :', letter)

fruits = ['banana', 'apple',  'mango']
for fruit in fruits:        # 示例二
   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!

使用索引迭代

迭代每个项目的另一种方法是通过序列的索引。 下面是一个简单的例子:

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()函数初始化一个Range对象,Range对象常用于生成迭代序列。

For循环中使用else语句

Python支持将else语句与循环语句关联

如果else语句与for循环一起使用,则在循环遍历完整个列表没有退回时执行else语句。

以下演示了for语句的结合else语句,搜索1020之间的素数。

for num in range(10,20):     #迭代1020之间的数
   for i in range(2,num):    #迭代num的因数
      if num%i == 0:         
         j=num/i             
         print('%d equals %d * %d' % (num,i,j))
         break 
   else:                  
      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

While循环

只要给定条件为Truewhile循环语句就会重复执行目标语句。

While循环的语法

while expression:
   statement(s)

这里,statement(s)可以是单个语句或语句块。条件可以是任何表达式,任何非零值都被视为True。 当条件为True时循环进行迭代。

当条件变为False时,程序的控制传递到紧跟在循环后面的那一行。

在Python中,缩进相同数量空格的所有语句都被视为一个代码块的一部分。 Python 使用缩进作为分组语句的方法。

示例

count = 0
while (count < 9):
   print('The count is:', count)
   count = count + 1

print("Good bye!")

输出如下结果:

The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!

无限循环

如果条件永远不会变为False,则循环变为无限循环。 使用while循环时必须小心,因为此条件可能永远不会为False值。 这会导致一个永无止境的循环。 这样的循环称为无限循环。

无限循环在客户端/服务器编程中可能很有用,其中服务器需要连续运行,以便客户端程序可以在需要时与其进行通信。

var = 1
while var == 1 :  
   num = raw_input("Enter a number  :")
   print("You entered: ", num)

print("Good bye!")

输出如下结果:

Enter a number  :20
You entered:  20
Enter a number  :29
You entered:  29
Enter a number  :3
You entered:  3

While循环中使用else语句

Python支持将else语句与循环语句一起使用。

如果else语句与while循环一起使用,则在条件变为False时执行else语句。

以下示例演示else语句与while语句的组合,该语句当数字小于5时,打印一个的数字,否则执行else语句。

count = 0
while count < 5:
   print(count, " is  less than 5")
   count = count + 1
else:
   print(count, " is not less than 5")

输出如下结果:

0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5

单语句模式

if语句语法类似,如果您的while子句仅包含一个语句时,它可能与while位于同一行。

这是单行while语句的示例:

flag = 1
while (flag): print('Given flag is really true!')
print("Good bye!")

最好不要尝试上面的示例,因为它会进入无限循环,您需要按CTRL+C键退出。

## 循环控制语句

循环控制语句改变循环的正常执行顺序。 它们对for循环和while循环的作用是相同的。

当执行离开范围时,在该范围内创建的所有自动对象都将被销毁。

Python支持以下控制语句:

  • break语句 终止循环语句并将执行转移到紧跟在循环之后的语句。
  • continue语句 使循环跳过当前循环的其余部分。
  • pass语句 语法上需要语句但您不希望执行任何命令或代码时使用。

break语句

它终止当前循环并在下一条语句处继续执行。

break最常见的用途是触发某些外部条件时,需要从循环中退出。

如果使用嵌套循环,break语句会停止执行最里面的循环并开始执行块之后的下一行代码。

break

示例

for letter in 'Python':     
   if letter == 'h':
      break
   print('Current Letter :', letter)

var = 10                    
while var > 0:              
   print('Current variable value :', var)
   var = var -1
   if var == 5:
      break

print("Good bye!")

输出如下结果:

Current Letter : P
Current Letter : y
Current Letter : t
Current variable value : 10
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Good bye!

continue语句

continue语句我放弃执行当前迭代中的剩余语句,并将控制权移回循环的顶部。

continue语句可用于whilefor循环。

示例

for letter in 'Python':     
   if letter == 'h':
      continue
   print('Current Letter :', letter)

var = 10                    
while var > 0:              
   var = var -1
   if var == 5:
      continue
   print('Current variable value :', var)
print("Good bye!")

输出如下结果:

Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : o
Current Letter : n
Current variable value : 9
Current variable value : 8
Current variable value : 7
Current variable value : 6
Current variable value : 4
Current variable value : 3
Current variable value : 2
Current variable value : 1
Current variable value : 0
Good bye!

Pass语句

它在语法上需要语句但您不希望执行任何命令或代码时使用。

pass语句是一个空操作; 执行时没有任何反应。 在您的代码最终将要运行但尚未编写的地方(例如,在存根中),pass也很有用。

for letter in 'Python': 
   if letter == 'h':
      pass
      print('This is pass block')
   print('Current Letter :', letter)

print("Good bye!")

输出如下结果:

Current Letter : P
Current Letter : y
Current Letter : t
This is pass block
Current Letter : h
Current Letter : o
Current Letter : n
Good bye!