谈谈Python中的while循环语句
作者:deniro 发布时间:2023-08-02 19:07:56
前言
python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。
循环里面还有两个比较重要的关键字,continue和break,continue的意思是,跳出本次循环,继续重头开始循环,break的意思是停止整个循环,也就是说在continue和break下面的代码都是不执行的。
for 循环用于集合,其中的每一个元素都会执行同一段代码块; 而 while 循环会不断地运行同一段代码块, 直到不满足指定的条件为止。
1 示例
我们使用 while 循环语句,设计一个小游戏。让玩家输入一个数字,程序将告诉他,这个数是奇数,还是偶数:
# 输入提示
prompt = '输入一个数字,我将告诉你,它是奇数,还是偶数哦O(∩_∩)O~'
prompt += '\n输入“不玩了”,将退出本程序: '
exit = '不玩了' # 退出指令
content = '' #输入内容
while content != exit:
content = input(prompt)
if content.isdigit():
number = int(content)
if (number % 2 == 0):
print('该数是偶数')
else:
print('该数是奇数')
elif content != exit:
print('输入的必须是数字哦')
运行结果:
我们在这段程序中,定义了一个退出指令, 只要玩家输入的不是这个指令, 程序就会一直运行。
2 活动状态标识
真实的游戏场景,可能有很多情况都会导致游戏结束。这时我们可以定义一个活动状态标识,用于判断整个程序是否处于活动状态。
我们来改写之前的示例:
prompt = '输入一个数字,我将告诉你,它是奇数,还是偶数哦O(∩_∩)O~'
prompt += '\n输入“不玩了”,将退出本程序: '
exit = '不玩了' # 退出指令
content = '' # 输入内容
active = True # 活动状态标识
while active:
content = input(prompt)
if content.isdigit():
number = int(content)
if (number % 2 == 0):
print('该数是偶数')
else:
print('该数是奇数')
elif content == exit:
active = False
else:
print('输入的必须是数字哦')
改写后,程序逻辑变得更清晰咯O(∩_∩)O~
在复杂的程序中, 可能存在很多事件都会导致程序停止。这时,设计一个活动状态标识就很有用: 其中的任何一个事件发生时,把活动状态标识设置为 False, 主程序循环结束。
3 break 关键字
使用 break 关键字,可以立即退出while 循环。
...
while active:
content = input(prompt)
if content.isdigit():
...
elif content == exit:
break
else:
...
4 continue 关键字
使用 continue 关键字,可以直接返回到循环的开头, 然后根据 while 条件测试结果来决定是否继续执行下一次循环。
while active:
content = input(prompt)
if content.isdigit():
number = int(content)
if (number % 2 == 0):
print('该数是偶数')
else:
continue
elif content == exit:
break
else:
print('输入的必须是数字哦')
这个改写后的示例,将只会打印偶数;如果碰到奇数,则直接跳到下一个循环。
5 无限循环
每个 while 循环都必须有一条停止运行的条件,否则就会无限循环执行下去。如果程序不小心陷入无限循环, 那么就必须按 Ctrl + C , 或关闭显示程序输出的终端窗口,来强行停止程序。
6 处理列表
可以使用 while 循环,在遍历列表的同时对其进行修改。而这在 for 循环中,就不可以一边遍历一边修改。
6.1 迁移列表元素
to_go_countries = ['英国', '法国', '美国'] # 想去的国家
visited_countries = [] # 已去的国家
while to_go_countries:
country = to_go_countries.pop()
print('准备去【' + country+'】')
print('【1】做攻略')
print('【2】出发')
print('【3】回来咯')
visited_countries.append(country)
print('to_go_countries:'+str(to_go_countries))
print('这些国家去过啦:' + str(visited_countries))
运行结果:
代码中,使用 pop() 方法弹出栈顶元素(即列表末尾的最后一个元素),并返回这个元素。
可以看到,【 想去的国家列表】在退出 while 循环之后,已经被弹空啦O(∩_∩)O~
6.2 删除列表元素
假设,目前有这些菜可点,但今天突然不想吃 “炸豆腐”,我们就可以这些写:
foods = ['拌海蜇', '炝冬笋', '炸豆腐', '炸面筋', '麻辣野鸡', '炒肉片']
while '炸豆腐' in foods:
foods.remove('炸豆腐')
print('foods=' + str(foods))
运行结果:
foods=['拌海蜇', '炝冬笋', '炸面筋', '麻辣野鸡', '炒肉片']
来源:https://www.jianshu.com/p/4fd1df615a1c
猜你喜欢
- 重读LukeW的《Web Form Design:Filling in the Blanks》感触很深,除佩服LukeW的钻研精神外,更多的
- 这里介绍几个常用的列表操作添加元素添加元素使用列表的内置方法appendnumber = [1, 2, 3, 4]number.append
- 在数据库应用,我们经常要用到唯一编号,以标识记录。在MySQL中可通过数据列的AUTO_INCREMENT属性来自动生成。MySQL支持多种
- urllib包和http包都是面向HTTP协议的。其中urllib主要用于处理 URL,使用urllib操作URL可以像使用和打开本地文件一
- 一、安装xlrd地址下载后,使用 pip install .whl 安装即好。查看帮助:>>> import xlrd&g
- 今天终于可以用wxPython开发GUI程序了,非常高兴。把其中的一些注意点写下来以供参考。在windows XP平台下,首先需要做以下环境
- 后边要做一个微信小程序,并要能获取用户微信绑定的手机号码。而小程序开发文档上边提供的获取手机号码的接口(getPhoneNumber())返
- 目前pytorch中的交叉熵损失函数主要分为以下三类,我们将其使用的要点以及场景做一下总结。类型一:F.cross_entropy()与to
- 本文介绍在Python环境中,实现随机森林(Random Forest,RF)回归与各自变量重要性分析与排序的过程。其中,关于基于MATLA
- 以下是IE7中新支持的属性:min-height,max-height,min-width,max-width这个hack还可以使最大高度兼
- Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下:Tkinter: Tkinter 模块(Tk 接口)是 P
- 1 The syntax of the SQL statement is verified.SQL的语法检查2 The data dicti
- 一、算法构造1.简单介绍一下knn算法KNN算法,也叫K最近邻算法。功能是分类。算法逻辑非常简单,说直白点就是:先找到跟你最近的k个邻居(假
- Javascript 正常取来源网页的URL只要用: document.referrer就可以了!但,如果来源页是Jav
- 如下所示:# 返回一个列表中出现次数最多的元素def showmax(lt): index1 = 0&n
- 在这篇文章中,我们将讨论mask R-CNN背后的一些理论,以及如何在PyTorch中使用预训练的mask R-CNN模型。1.语义分割、目
- 本文实例为大家分享了python实现决策树的具体代码,供大家参考,具体内容如下算法优缺点:优点:计算复杂度不高,输出结果易于理解,对中间值缺
- 有时网页中会嵌套一个或者多个Frame,此时我们直接去找嵌套在Frame里面的元素会抛出异常,所以在操作的时候我们需要将页面焦点切换到Fra
- 解包在英文里叫做 Unpacking,就是将容器里面的元素逐个取出来放在其它地方,好比你父母去菜市场买了一袋苹果回来分别发给家里的每个成员,
- 训练完目标检测模型之后,需要评价其性能,在不同的阈值下的准确度是多少,有没有漏检,在这里基于IoU(Intersection over Un