python While 循环语句

发布时间:2018-02-12 16:46:28编辑:admin阅读(3711)

    python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

    其基本形式为:

    while 判断条件:
        执行语句……

    执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。
    当判断条件假false时,循环结束。
    执行流程图如下:

    图片.png

    还是上一篇文章,讲的猜年龄的例子,需要无限次数执行

    可以使用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!")

    执行效果如下:

    cai2.gif

    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

    执行效果如下:

    cai3.gif

    代码还可以优化一下,如下:

    #!/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

    执行效果如下:

    cai4.gif

关键字

上一篇: python if else 流程判断

下一篇: python for循环