Python趣味入门教程之循环语句while


Posted in Python onAugust 26, 2020

前言

任何语言都有循环语句,在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人选满为止。
关于这个挑人程序,现在分析如下:

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

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

import random #使用随机数工具
volunteer = 500
while 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)

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

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

Python趣味入门教程之循环语句while 

总结

到此这篇关于Python趣味入门教程之循环语句while的文章就介绍到这了,更多相关Python循环语句while内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python求两个list的差集、交集与并集的方法
Nov 01 Python
Python中类的定义、继承及使用对象实例详解
Apr 30 Python
python实现的简单抽奖系统实例
May 22 Python
解决python读取几千万行的大表内存问题
Jun 26 Python
python使用rpc框架gRPC的方法
Aug 24 Python
Python设计模式之代理模式实例详解
Jan 19 Python
Python为何不能用可变对象作为默认参数的值
Jul 01 Python
Python Selenium 之数据驱动测试的实现
Aug 01 Python
Python configparser模块配置文件过程解析
Mar 03 Python
常用的10个Python实用小技巧
Aug 10 Python
python实现人工蜂群算法
Sep 18 Python
python 实现图与图之间的间距调整subplots_adjust
May 21 Python
Python脚本实现Zabbix多行日志监控过程解析
Aug 26 #Python
如何把python项目部署到linux服务器
Aug 26 #Python
torchxrayvision包安装过程(附pytorch1.6cpu版安装)
Aug 26 #Python
python 多线程死锁问题的解决方案
Aug 25 #Python
详解Pycharm与anaconda安装配置指南
Aug 25 #Python
Python如何爬取51cto数据并存入MySQL
Aug 25 #Python
基于Python爬取51cto博客页面信息过程解析
Aug 25 #Python
You might like
PHP实现GIF图片验证码
2015/11/04 PHP
PHP常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
关于 Laravel Redis 多个进程同时取队列问题详解
2017/12/25 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
THINKPHP5.1 Config的配置与获取详解
2020/06/08 PHP
javascript下高性能字符串连接StringBuffer类
2010/08/16 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
nodejs如何获取时间戳与时间差
2016/08/03 NodeJs
js oncontextmenu事件使用详解
2017/03/25 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
2018/08/29 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
layui 关闭open弹出框 刷新table表格页面的方法
2019/09/16 Javascript
Vue分页插件的前后端配置与使用
2019/10/09 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
[02:50]【扭转乾坤,只此一招】DOTA2全新版本永雾林渊开启新篇章
2020/12/24 DOTA
[01:32:50]DOTA2-DPC中国联赛 正赛 DLG vs XG BO3 第一场 1月25日
2021/03/11 DOTA
python遍历文件夹并删除特定格式文件的示例
2014/03/05 Python
Python里隐藏的“禅”
2014/06/16 Python
python可视化实现KNN算法
2019/10/16 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
HTML5 与 XHTML2
2008/10/17 HTML / CSS
教师年度考核自我鉴定
2014/01/19 职场文书
2014最新党员违纪检讨书
2014/10/12 职场文书
学校工会工作总结2015
2015/05/19 职场文书
如何利用Matlab制作一款真正的拼图小游戏
2021/05/11 Python
详解Redis基本命令与使用场景
2021/06/01 Redis
Linux中sftp常用命令整理
2022/06/28 Servers