Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while判断条件:

执行语句……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

当判断条件假false时,循环结束。

执行流程图如下:

Pythonwhile循环心得体会 pythonwhile循环用法_python

Gif 演示 Python while 语句执行过程

实例:

1 #!/usr/bin/python
2
3 count =04 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"

以上代码执行输出结果:

1 The count is: 02 The count is: 1
3 The count is: 2
4 The count is: 3
5 The count is: 4
6 The count is: 5
7 The count is: 6
8 The count is: 7
9 The count is: 8
10 Good bye!

while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还可以是个常值,表示循环必定成立,具体用法如下:

1 #continue 和 break 用法
2
3 i = 1
4 while i < 10: i += 1 if i%2 > 0: #非双数时跳过输出
5 continue
6 print i #输出双数2、4、6、8、10
7
8 i = 1
9 while 1: #循环条件为1必定成立
10 print i #输出1~10
11 i += 1
12 if i > 10: #当i大于10时跳出循环
13 break

无限循环

如果条件判断语句永远为 true,循环将会无限的执行下去,如下实例:

1 #coding=utf-8
2 #!/usr/bin/python
3
4 var = 1
5 while var == 1 : #该条件永远为true,循环将无限执行下去
6 num = raw_input("Enter a number :")7 print "You entered:", num8
9 print "Good bye!"

以上实例输出结果:

1 Enter a number :20
2 You entered: 20
3 Enter a number :29
4 You entered: 29
5 Enter a number :3
6 You entered: 3
7 Enter a number between :Traceback (most recent call last):8 File "test.py", line 5, in 
9 num = raw_input("Enter a number :")10 KeyboardInterrupt

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

循环使用 else 语句

在 python 中,for … else 表示这样的意思,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

1 #!/usr/bin/python
2
3 count =04 while count < 5:5 print count, "is less than 5"
6 count = count + 1
7 else:8 print count, "is not less than 5"
以上实例输出结果为:
1 0 is less than 5
2 1 is less than 5
3 2 is less than 5
4 3 is less than 5
5 4 is less than 5
6 5 is not less than 5

简单语句组

类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中, 如下所示:

1 #!/usr/bin/python
2
3 flag = 1
4
5 while (flag): print 'Given flag is really true!'
6
7 print "Good bye!"

注意:以上的无限循环你可以使用 CTRL+C 来中断循环。

While循环语句实例

猜拳小游戏

1 #!/usr/bin/python
2 #-*- coding: UTF-8 -*-
3
4 importrandom5 while 1:6 s = int(random.randint(1, 3))7 if s == 1:8 ind = "石头"
9 elif s == 2:10 ind = "剪子"
11 elif s == 3:12 ind = "布"
13 m = raw_input('输入 石头、剪子、布,输入"end"结束游戏:')14 blist = ['石头', "剪子", "布"]15 if (m not in blist) and (m != 'end'):16 print "输入错误,请重新输入!"
17 elif (m not in blist) and (m == 'end'):18 print "\n游戏退出中..."
19 break
20 elif m ==ind :21 print "电脑出了:" + ind + ",平局!"
22 elif (m == '石头' and ind =='剪子') or (m == '剪子' and ind =='布') or (m == '布' and ind =='石头'):23 print "电脑出了:" + ind +",你赢了!"
24 elif (m == '石头' and ind =='布') or (m == '剪子' and ind =='石头') or (m == '布' and ind =='剪子'):25 print "电脑出了:" + ind +",你输了!"

以上实例输出结果为:

1 输入 石头、剪子、布,输入"end"结束游戏:石头2 电脑出了: 石头,平局!3 输入 石头、剪子、布,输入"end"结束游戏:石头4 电脑出了: 剪子,你赢了!5 输入 石头、剪子、布,输入"end"结束游戏: