发布时间:2018-02-12 16:46:28编辑:admin阅读(4011)
python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
其基本形式为:
while 判断条件: 执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
当判断条件假false时,循环结束。
执行流程图如下:
还是上一篇文章,讲的猜年龄的例子,需要无限次数执行
可以使用while循环来做,代码如下:
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' age_of_oldboy = 56 while True: guess_age = int(input("guess age:")) if guess_age == age_of_oldboy: print("yes, you got it.") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!")
执行效果如下:
break 表示跳出循环,否则程序无法退出
如果不想无限次数猜,只限制3次机会,怎么做呢?代码如下:
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' age_of_oldboy = 56 #初始次数 count = 0 while True: if count == 3: print("only allow 3 guesses!") break guess_age = int(input("guess age:")) if guess_age == age_of_oldboy: print("yes, you got it.") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!") #每次执行加1 count += 1
执行效果如下:
代码还可以优化一下,如下:
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' age_of_oldboy = 56 #初始次数 count = 0 #判断次数,是否小于3次 while count < 3: guess_age = int(input("guess age:")) if guess_age == age_of_oldboy: print("yes, you got it.") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!") #每次执行加1 count += 1 #判断执行次数 if count == 3: #提示只允许猜3次 print("only allow 3 guesses!")
上面代码,表示针对某一个条件做循环。
最后,当尝试3次之后,提示信息,程序结束。
针对最后的if判断,其实是可以省略的,代码如下:
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' age_of_oldboy = 56 #初始次数 count = 0 #判断次数,是否小于3次 while count < 3: guess_age = int(input("guess age:")) if guess_age == age_of_oldboy: print("yes, you got it.") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!") #每次执行加1 count += 1 else: #提示只允许猜3次 print("only allow 3 guesses!")
为什么一个else就搞定了呢?
这就是python优秀的地方
当次数小于3次,可以继续猜
否则就必定大于3次,程序直接输出提示信息,程序退出。
再来加一个条件,当次数达到3次的时候,提示是否继续?输入y继续,输入n,程序终止!
代码如下:
#!/usr/bin/env python # coding: utf-8 __author__ = 'www.py3study.com' age_of_oldboy = 56 #初始次数 count = 0 #判断次数,是否小于3次 while count < 3: guess_age = int(input("guess age:")) if guess_age == age_of_oldboy: print("yes, you got it.") break elif guess_age > age_of_oldboy: print("think smaller...") else: print("think bigger!") #每次执行加1 count += 1 #当次数达到3次的时候 if count == 3: #提示是否继续游戏? continue_confirm = input("Do you want to continue y/n ?") #不输入n时 if continue_confirm != "n": #次数重置为0 count = 0
执行效果如下:
上一篇: python if else 流程判断
下一篇: python for循环
47745
46237
37110
34627
29229
25886
24745
19863
19417
17909
5716°
6315°
5836°
5888°
6985°
5829°
5846°
6361°
6316°
7673°