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

作者 : 开心源码 本文共1884个字,预计阅读时间需要5分钟 发布时间: 2022-05-14 共378人阅读

任何语言都有循环语句,在Python里循环更是变化无穷,有基本的循环,有循环else语句,引伸出来的还有迭代器、推导式。

1、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人的队伍里,随机挑出,假如满意就当选,不满意就归队

import random  #使用随机数工具volunteer = 500while volunteer > 500-10: #当剩下的人数大于490时才继续面试    test = random.randint(1,volunteer)    if(input('还剩下'+ str(volunteer)+'人,这是随机筛选的第'+str(test)+'号,您满意么(y/n)?') == 'y'):        volunteer -= 1 #当选后队伍就会少1人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)

说明:当执行外部模块的函数,要用英文点.分隔。

更多精彩的内容,可以加作者公众号,不走失。

微信文章底部.png

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Python趣味入门5:循环语句while

发表回复