python While 循环语句

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

执行效果如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LEo的网络日志

python技巧分享(十一)

27180
来自专栏LEo的网络日志

python技巧分享(十一)

14340
来自专栏web前端-

JSON

    一般情况下,我们的json数据都是从服务端获取到的,获取的json数据是以字符串的形式返回的。这个字符串虽然是json格式的,但是不能被直接使用,我们...

22740
来自专栏java学习

Java每日一练(2017/7/24)

本期题目: (单选题) 1、与InputStream流相对应的Java系统的“标准输入对象”是() A System.in B System.out C Sy...

37080
来自专栏GopherCoder

Python 强化训练:第五篇

16030
来自专栏编程

28.go语言没有类 却可以在结构体或任意类型定义方法

共2500字,阅读需6分钟 ? 在go语言中没有类。可是,是有方法的。 给结构体定义方法,在对应的 func 和方法名之间,加上方法的接收者就可以了。 比如,我...

196100
来自专栏编程

【C语言编程锦囊·连载49】如何进行字符串的比较?

问题阐述 字符串的比较,就是看两个字符串哪个大,哪个小。比较的原则是对两个字符串进行逐个字符的比较。直到有不相等的字符为止。例: “abcd” “abxa” 这...

22260
来自专栏IT可乐

深入理解计算机系统(3.5)------特殊的算术操作指令

  在上一篇博客 算术和逻辑操作 我们介绍了如下图几种常用的算术逻辑指令,但是大家发现没,这几种指令如果在 IA32 上只能操作32位寄存器,比如我用乘法指令I...

21170
来自专栏菜鸟计划

javascript 变量、作用域和内存问题

一、基本类型和引用类型的值   1.基本类型和引用类型的值  基本类型值:指那些保存在栈内存中的简单数据,即这种值完全保存在内存中的一个位置,他们所占据的空间大...

37780
来自专栏PHP在线

PHP知识点

JSON支持 包括json_encode(), json_decode()等函数,JSON算是在web领域非常实用的数据交换格式,可以被JS直接支持,JSON实...

36160

扫码关注云+社区

领取腾讯云代金券