• Python趣味入门5:循环语句while


    跟着小牛叔,找准正确编程入门姿势,每天只要阅读10分钟。

    任何语言都有循环语句,在Python里循环更是变化无穷,有基本的循环,有循环else语句,引伸出来的还有迭代器、推导式,咱们先学习最简单的一种。

    While循环

    while 条件判断语句:
      子代码1
      子代码2
      子代码3
      …
      子代码N
    主代码1

    while语句的格式与if类似,子代码必须进行缩进4个空格,作用却是大不相同。当它执行第一次循环时,判断条件是否成立,如果条件成立,就从子代码1开始执行到子代码N,然后程序会回到while语句再次判断条件是否成立,如果成立就继续从子代码1开始执行,如果不成立就跳过子代码段,系统从主代码1开始往后执行。

    话说在North Kingdom北境国的北面夜王控制了塞外,曾经春夏交织,现在每天雪花连绵,似乎进入了无限循环状态。

    类似于永不停止的重复动作即无限循环,实现它需要在写条件判断语句时,直接写上永远为True的判断结果,简单直接使用True,以实现了无穷循环的功能,如下面的程序所示:

    >>> while True: 
        print('下雪') 
    下雪 
    下雪 
    下雪 
    下雪 
    下雪 
    下雪 (按下Ctrl+C来终止程序无穷运行) 
    KeyboardInterrupt    
    >>> 

    身为北境守卫者的我 - 中文名雪诺(英文名Snow)决定越过长城北,解决掉夜王。国王Stannis请我在王宫500个最强壮的卫兵中,挑选10人同行,由于时间有限不可能全部面试500人为了公平,于是我决定由电脑随机挑出1个人,通过后即出队入选,这样重复多次直到10人选满为止。
    关于这个挑人程序,现在分析如下:

    • 首先定义队伍人数,初始值是500。
    • 面试后如选中一人,队伍中会少一个人。
    • 如果未选中,让其归队,队伍人数不会变化。
    • 无论上一次有没有选中,只需要在剩下的人数里再继续产生随机数(注意:并不是从原来整个500人中产生)。
    • 如果剩下的人数是490人就意味着10人已经选满,循环结束。
      至此逻辑已经很清楚了,看看您是不是已经把程序写出来了呢?

    本程序从500人的队伍里,随机挑出,如果满意就入选,不满意就归队

    1 import random  #使用随机数工具 
    2 volunteer = 500 
    3 while volunteer > 500-10: #当剩下的人数大于490时才继续面试     
    4     test = random.randint(1,volunteer) 
    5     if(input('还剩下'+ str(volunteer)+'人,这是随机挑选的第'+str(test)+'号,您满意么(y/n)?') == 'y'):
    6      volunteer -= 1 #入选后队伍就会少1人 
    7 print('您已经选足了10个人!') 

    上面程序使用了无限循环,为实现满足选定10人就退出的功能,在循环里进行了条件判断,满足条件退出Python,程序运行结果如下所示:

    还剩下500人,这是随机挑选的第329号,您满意么(y/n)?y
    还剩下499人,这是随机挑选的第113号,您满意么(y/n)?n
    还剩下499人,这是随机挑选的第176号,您满意么(y/n)?y
    还剩下498人,这是随机挑选的第243号,您满意么(y/n)?y
    还剩下497人,这是随机挑选的第315号,您满意么(y/n)?y
    还剩下496人,这是随机挑选的第413号,您满意么(y/n)?y
    还剩下495人,这是随机挑选的第375号,您满意么(y/n)?y
    还剩下494人,这是随机挑选的第440号,您满意么(y/n)?y
    还剩下493人,这是随机挑选的第389号,您满意么(y/n)?y
    还剩下492人,这是随机挑选的第388号,您满意么(y/n)?y
    还剩下491人,这是随机挑选的第231号,您满意么(y/n)?y
    您已经选足了10个人!

    在运行过程中第2次输入不满意n时,可以看到剩下的人数499并没有变化。

    在这里循环和判断都是之前讲过的内容,重点是下面的语句:

    import random

    这句话是告诉计算机,我马上要使用random模块,模块就是系统中提供高级功能的工具包。为什么要执行这条语句呢?主要是因为系统内置会提供一些功能,比如条件语句、判断语句、计算语句,为了节约内存不可能把所有功能都提供,所以当我们使用手边没有的工具时(比如本程序用的随机数)就要声明,好让程序加载到内存里。

    下面的语句里,volunteer是变量,表示剩下的人总数,randint()这种带括号形式的写法,表示函数的执行,该函数返回从1到volunteer之间(也包括)任意随机数(代表抽出的人的编号),最后把抽出的编号赋值保存于test变量。

    test = random.randint(1,volunteer) 

    说明:当执行外部模块的函数,要用英文符号圆点.

    Python趣味入门4:while循环示例
     

    小牛叔倾情出品,史上更简单有趣的Python入门系列教程,用认真、上心的原创带你飞。

    更多精彩的内容,可以加关注作者,不走失。

  • 相关阅读:
    虚拟机简介
    关于JavaScript的那些话
    关于Python的那些话
    JavaScript教程大纲
    一个resin启动bug的解决
    Python教程大纲
    zinnia项目功能分析
    CDN公共资源
    Django Web项目部署参考
    Django Web项目代码规范参考
  • 原文地址:https://www.cnblogs.com/dosboy/p/13562705.html
Copyright © 2020-2023  润新知