while循环语句举例_while循环语句

Python中,while 循环和 if 条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while 就会一直重复执行那段代码块。

while 语句的语法格式如下:

while 条件表达式:    代码块

这里的代码块,还是指的缩进格式相同的多行代码,不过在循环结构中,它又称为循环体。

while 语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块…如此循环,直到条件表达式的值为假(False),才终止循环。

while 循环结构的执行流程如图 1 所示。937ecce6bdedac1719f8aa75ffa962a3.png例如,打印 1~100 的所有数字,就可以使用 while 循环,实现代码如下:

# 循环的初始化条件 num = 1# 当 num 小于100时,会一直执行循环体while num < 100 :print("num=", num)# 迭代语句 num += 1  print("循环结束!")

运行程序会发现,程序只输出了 1~99,却没有输出 100。这是因为,当循环至 num 的值为 100 时,此时条件表达式为假(100<100),当然就不会再去执行代码块中的语句,因此不会输出 100。

注意,在使用 while 循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环,永远无法结束这个循环。

例如,将上面 while 循环中的num += 1代码注释掉再运行,你会发现,Python 解释器一直在输出"num= 1",除非我们强制关闭解释器。

另外,与 if 分支语句类似的是,while 循环的循环体中所有代码必须使用相同的缩进,否则 Python 也会引发错误。例如如下程序:

# 循环的初始化条件 num = 1# 当 num 小于100时,会一直执行循环体while num < 100 :print("num=", num)# 迭代语句 num += 1    print("循环结束!")

运行上面程序,将会看到执行一个死循环。这是由于num += 1代码没有缩进,这行代码就不属于循环体。这样程序中的 num 将一直是 1,从而导致 1 < 100 一直都是 True,因此该循环就变成了一个死循环。

使用while循环遍历列表和元组

由于列表和元组的元素都是有索引的,因此程序可通过 while 循环、列表或元组的索引来遍历列表和元组中的所有元素。例如如下程序:

a_tuple = ('fkit', 'crazyit', 'Charli') i = 0# 只有i小于len(a_list),继续执行循环体while i < len(a_tuple):print(a_tuple[i]) # 根据i来访问元组的元素      i += 1

运行上面程序,可以看到如下输出结果:

c3d50b15a2861533630858e7cb768394.png按照上面介绍的方法,while 循环也可用于遍历列表。

下面示范一个小程序,实现对一个整数列表的元素进行分类,能整除 5 的放入一个列表中;除以 5 余 1 的放入另一个列表中;除以 5 余 2 的放入第三个列表中:

src_list = [15, 45, 35, 102,16, 31,76, 180, 28, 57, 74, 119] a_list = [] # 定义保存整除5的元素 b_list = [] # 定义保存除以5余1的元素 c_list = [] # 定义保存除以5余2的元素# 只要src_list还有元素,继续执行循环体while len(src_list) > 0:# 弹出src_list最后一个元素 ele = src_list.pop()# 如果ele % 2不等于0if ele % 5 == 0: a_list.append(ele) # 添加元素elif ele % 5 == 1: b_list.append(ele) # 添加元素else: c_list.append(ele) # 添加元素print("整除5:", a_list)print("除以5余1:", b_list)  print("除以5余2:", c_list)

上面程序运行结果如下:

1398d3528587a89fecd7198799e934d1.png

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

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

无限循环

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

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

以上实例输出结果:

Enter a number :20You entered: 20Enter a number :29You entered: 29Enter a number :3You entered: 3Enter a number between :Traceback (most recent call last):File "test.py", line 5, in num = raw_input("Enter a number :")KeyboardInterrupt

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

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

#!/usr/bin/pythoncount = 0while count < 5:print count, " is less than 5"count = count + 1else:   print count, " is not less than 5"

以上实例输出结果为:

0 is less than 51 is less than 52 is less than 53 is less than 54 is less than 55 is not less than 5

简单语句组

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

#!/usr/bin/pythonflag = 1while (flag): print 'Given flag is really true!'print "Good bye!"

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值