python 中gcd用法_Python中while语句的基本用法不了解一下嘛?
文 | 天罡君
while和for都可以使程序重复执行某一段代码(又称作循环体),区别是for循环用于针对集合中的每一个元素都一个代码块,而while循环在表达式为True的情况下会不断地执行,直到指定条件不满足为止。
今天我们一起来学习下while关键字的使用。
1.while循环简介
while在英语中的解释是:当......时候。
在Python中的语法是:
while 表达式: 循环体
意味着,当表达式为True的时候,程序会一直执行循环体代码,直至表达式为False。
1.1使用while循环
最简单的while循环当属数数了。例如,下面的while循环从1数到5:
num = 1while num <= 5: print(num) num += 1
首先定义了变量num并给其初始值1。接下来的while循环被设置成这样:只要num小于或等于5,就接着运行循环体代码。
循环体中的代码打印变量num的值,再使用代码num+=1(代码num=num+1的简写)将其值加1。
只要满足条件num<=5,python就接着运行这个循环。由于1小于5,因此Python打印1,并将num加1,使其为2;由于2小于5,因此Python打印2,并将num加1,使其为3,以此类推。一旦num大于5,循环将停止,整个程序也将结束运行。
运行结果:
12345
有人可能看到这会有点懵:已经有for循环了,为啥又搞出个while循环?
注:表情包中不是python代码
可以简单的这样理解:for循环主要用于那些我们知道循环次数的循环,如,遍历整个列表,我们知道循环次数就是列表中元素的个数。而while循环主要用于那些我们不知道具体循环多少次的循环,人们常说人生就像一个程序,写成代码的话,我们人生中发生的所有事情都在while 活着:循环的循环体中,我们是不知道一个人到底能活多长时间的,只能用while。
当然,有些循环用for和while都可以实现。
其实,你每天使用的程序很可能就包含着while循环。例如,游戏程序就在一个大的while循环中,在玩家退出时停止运行。用while循环能让程序在用户没有让它停止之前一直运行,这点是for循环做不到的。
1.2让用户选择何时退出
可使用while循环让程序在用户愿意时不断地运行,当用户想退出时就可以随时退出:
prompt = "输入一些内容,系统将原样返回给你:"prompt += "键入 'quit' 结束此程序运行。"message = ''while message != 'quit': message = input(prompt) print(message)
我们定义了一条信息提示,告诉用户他有两个选择:要么输入一条消息,要么输入'quit'退出程序。
接下来我们创建了变量message来接收用户输入的内容。Python执行while语句时,需要将message的值与'quit'进行比较。如果用户输入的不是'quit',程序将打印出用户输入,否则将终止程序运行。
我们向控制台输入的任何信息(除'quit')都能得到一模一样的返回信息。
当我们键入'quit'时,可以终止程序运行:
输入'quit'以后确实终止了程序,但它将'quit'也打印了出来。这其实无关痛痒,然而精益求精的我们是不能忍受的,怎么能让它在输入'quit'时直接退出,输入其他信息时原样返回呢?
prompt = "输入一些内容,系统将原样返回给你:"prompt += "键入 'quit' 结束此程序运行。"message = ''while message != 'quit': message = input(prompt) if message != 'quit': print(message)
我们只要让程序在打印信息前做个简单的检查,仅在消息不是'quit'时才打印它:
可以清楚地看到,这回输入'quit'之后程序没有返回'quit'给我们(可不是天罡君截图的时候故意没截下面噢)。
1.3更优雅的退出方式
前一个示例中,我们采用判断message!='quit'是否为True的方式来决定程序是否继续循环执行。可有时影响程序是否继续执行的条件不止一个,如用户输入'quit'或'退出'中的任意一个都可以终止程序运行。
聪明的小伙伴会说那还不简单,我把判断条件换成:
message != 'quit' or message != '退出'
这样做到底可不可以呢?答案是可以的,但不是最好的或者说是不优雅的,我们写程序的偶尔可以追求下代码的品质嘛。
更优雅的方式是使用标志。可能有小伙伴对这个名词感触不深,我们直接上新鲜滚烫的代码来感受一下。
prompt = "输入一些内容,系统将原样返回给你:"prompt += "键入 'quit' 结束此程序运行。"active = Truewhile active: message = input(prompt) if message == 'quit': active = False elif message == '退出': active = False else: print(message)
我们把active作为标志位,并且初始值给它True,这里肯定得是True,不然程序无法进入循环,就更别提执行循环体代码了。
然后使用两条if语句来检查变量message的值。如果用户输入的是'quit',我们就把变量active设置成False,如果用户输入的是'退出',我们也把变量active设置成False。
至于为什么不把两个if判断条件写在一起?
其一,这样就和把message != 'quit' or message != '退出'直接写在while后面没啥区别了;
其二,是想让小伙伴们认识到,在真实的项目中,只要有一个条件不满足,就可以直接把active置为False,程序会直接停止运行,因为不同的条件下逻辑可能会不一样,代码块自然也会不同,所以无法把两个if判断条件写在一起。
如果用户输入的既不是'quit'又不是'退出',则程序会将用户输入信息原样输出。
1.4使用break退出循环
如果你要立即退出while循环,不在运行循环体中余下的代码,也不管while后面跟的表达式是真是假,可以使用break语句。
例如,我们写个点菜程序,让用户输入TA想吃的菜。在这个程序中,我们可以在用户输入'quit'后使用break语句立即退出while循环:
prompt = "请输入您想吃的菜名:"prompt += "键入'quit'以退出程序。"while True: food = input(prompt) if food == 'quit': break else: print("我想吃
python 中gcd用法_Python中while语句的基本用法不了解一下嘛?相关推荐
- python for循环流程图_python for循环语句结构与用法实例(图)
想必大家都知道python循环语句吧,python循环语句有多种,比如for循环.while循环.if.else等等,今天就给大家讲讲for循环语句.for循环语句是python中的一个循环控制语句, ...
- python算法和数据结构_Python中的数据结构和算法
python算法和数据结构 To 至 Leonardo da Vinci 达芬奇(Leonardo da Vinci) 介绍 (Introduction) The purpose of this ar ...
- python中定义数据结构_Python中的数据结构—简介
python中定义数据结构 You have multiples algorithms, the steps of which require fetching the smallest value ...
- python中print的用法_Python中print函数简单使用总结
Python中print函数简单使用总结 print函数是Python的入门,每一个学习python的人都绕不开这个函数,下面介绍一下这个函数的用法. 打开电脑,选择python软件,下面选择pyth ...
- python正则findall函数的用法_python中正则表达式 re.findall 用法
python中正则表达式 re.findall 用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了r ...
- python中with as用法_python 中关于with...as的用法
python中的with...as类似于try...except......finally...其用法是 with A() as b: suite block 其中A是一个类,该类中必须包含两个函数_ ...
- python常用函数的用法_python中常用函数整理
1.map map是python内置的高阶函数,它接收一个函数和一个列表,函数依次作用在列表的每个元素上,返回一个可迭代map对象. class map(object):""&qu ...
- python if函数用法_python中if条件中的Contains()函数“in”
我对contains()in的功能做了一些研究,特别是与eq()==进行了比较,发现它可以完成许多任务.我设法回答了其中许多问题(见下文). 除了下面的用法之外,in还有其他有用的用法吗,例如对象?在 ...
- python中main方法的用法_Python中的main方法
估计很多人跟我一样初学python看代码的时候先找一下main()方法,从main往下看.但事实上python中是没有你理解中的"main()"方法的.言归正传 if name = ...
- python中replace的用法_python中replace的用法是什么?
python中replace的用法是什么? Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次. r ...
最新文章
- Mysql提示缺少表的别名报错_mysql对sql中别名引起的Column not found问题
- cli3暴露api地址 vue_手把手教你开发 Vue 组件库
- 大家所推崇的Redis分布式锁真的就万无一失吗?
- 计算机丢失qt4core.dll,qtcore4.;dll文件丢失。怎么办?
- ios html异步加载图片,iOS 异步加载本地图片
- Java操作某方法时报错:java.lang.NoSuchMethodError
- sqlyog 64位linux版本,linux安装mysql+sqlyog可视化(示例代码)
- 贵州大学旧物交易系统
- 中科软java笔试题
- Proteus的基本使用方法
- Laravel渴求式加载
- Sample抽样函数
- LaTeX的下载安装及使用教程
- 英语口语196之每日十句口语
- inspect的使用
- 三相电机驱动电路详解
- 企业级架构之LNMP
- 使用spring boot+kubernetes构建完整微服务平台
- 【机器学习系列】概率图模型第二讲:深入浅出有向图中的条件独立性和D划分
- 滴答顺风车怎么抢90%以上的订单_顺风车这样做才是对的,其他都是扯淡!