5、Python基础之while循环

本文介绍了Python中的input()函数工作原理,它用于暂停程序等待用户输入,并展示了如何在while循环中使用input()。同时,文章详细讲解了while循环的基础用法,包括循环标志、continue和break的运用。此外,还探讨了如何在while循环中处理列表和字典,如修改列表、删除特定值以及通过用户输入动态扩充字典。
摘要由CSDN通过智能技术生成

目录

一、input()的工作原理

二、while循环

循环标志

continue & break 

三、利用while循环处理列表和字典

修改列表

通过用户输入与while循环来扩充字典


本篇着重介绍while循环的基本使用方法。在此之前,我们先介绍一个与while循环关系密切的函数:input()。

一、input()的工作原理

使用input()函数,可以让程序暂停运行,等待用户输入一些文本内容。获取到用户输入信息后,程序继续运行,针对输入的文本进行一些操作,或者输出一些信息。

input()函数接受一个参数,旨在输出一段提示信息或者说明,让用户知道应该输入什么内容。

举个例子:下图中,我们定义了一个名为message的input()函数,函数的参数告诉用户随意输入点什么内容,然后将其输出,运行这段代码,我们看到控制台中输出了input()函数的参数,但程序并没有运行结束,而是处于一个暂停等待的状态:程序在等待用户输入。

 接上文,我们在控制台中冒号后面输入“Hello World!”并回车:

可以看到控制台将用户输入的内容打印了出来,并结束运行。这个打印的过程执行的就是print(message)这一行代码,也就是说第一行里定义的message,其值就是用户输入的信息。  

编写input()函数,应该注意:给用户的提示信息应当清晰易懂,准确告知用户该输入什么内容。如图所示:

这段程序用了2次input()函数,所以程序会暂停两次。第一次等待用户输入姓名,输入完毕回车后,程序继续运行,输出了来者姓名(朱时茂)和陈佩斯对其说的话,然后程序第二次暂停,再次等待用户(朱时茂)输入 ,待朱时茂输入完毕回车,程序继续运行输出了朱时茂打断陈佩斯时说的话。(just a  joke😜)

还要注意:使用input()函数时,用户输入的任何内容,都将被Python解读为字符串。如果某些场景用户输入了数字,而我们试图将输入作为数值来使用,就会引发错误。如图所示:

错误信息明确告知:不支持在str类型和int类型的变量之间进行比较。这说明用户输入的18被程序捕获后是字符型的。

为了解决类型不匹配的问题,可以使用int()函数,将输入转为数值,再进行比较,就OK了。如图

二、while循环

Python的while循环和java里的用法基本一样,不断运行直到指定的条件不满足为止。

看例子:

下面,举个while循环与input()函数结合的例子,写一个与用户互动的程序,如果用户想终止互动,可以输入特定字符来触发终止条件。值得注意的是,这个条件message是通过用户输入来获取的。而初次执行while循环时,我们还没有拿到用户输入信息,这会导致while无法执行。因此,需要给变量message设置一个初始值,让Python首次执行while循环时能够继续下去。

美中不足的是,用户输入quit之后,程序仍然会重复一下这条输入,然后才终止。可以使用if条件来改善一下,如果用户输入quit则不再打印。具体的代码就不再贴了。

循环标志

前面的例子,我们让程序在满足某个条件时执行一些特定动作。如果碰到复杂场景,有很多条件可能导致程序终止,这时怎么办呢?比如我们玩游戏,生命耗尽、时间耗尽、据点被攻破 等等,都会被系统判定失败。如果在一个while语句里检查所有条件,程序可能会很复杂又难以编写。

这种情况下,可以定义一个布尔变量,用于判断整个程序是否处于活动状态。这个变量我们称之为标志(flag)。在任何一种会导致程序终止的场景,将标志置为False,这时,while循环只需检查标志的值即可。

下面举个简单的例子来说明 一下标志的用法:

continue & break 

Python中的continue和break,与Java用法相同。continue表示跳过本次循环,执行下一次;break表示终止循环,不再执行。这里格外提一下,continue与break在Python的for循环中也可以同样使用。

比如,我们利用while循环来判断奇偶数,并利用continue达到只输出奇数的目的:

比如,我们利用break直接终止互动,而不必像之前的例子那样,等待用户输入终止命令(quit):

 

这里需要注意: 每个while循环都必须有停止运行的途径,否则会产生无限循环。代码很少的情况下一般不会出现这个错误,但代码量很大、业务复杂的时候是有可能出现这个问题的。所以一定要经过测试。

三、利用while循环处理列表和字典

修改列表

我们知道,在for循环中不应该做列表修改,那样会导致Python难以跟踪列表元素。前边我们介绍过通过创建切片的方式修改列表,这里则继续介绍while循环方式修改列表。

还可以通过while循环删除列表中的所有指定值。还记得之前介绍的remove()函数吗?(传送门)remove()函数要删除的值只能在列表中出现一次,多了就不行了。while循环解决了这个问题。如下图所示,所有名为cat的宠物都被删除了:

通过用户输入与while循环来扩充字典

 假设有一场面试,面试官在登记来访人员信息之后,再询问后面是否还有其他面试者,如果有就换下一位继续面试,如果没有则终止面试:

好了,关于while循环到此结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值