谈谈Python中的while循环语句


Posted in Python onMarch 10, 2019

前言

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('输入的必须是数字哦')

运行结果:

谈谈Python中的while循环语句

我们在这段程序中,定义了一个退出指令, 只要玩家输入的不是这个指令, 程序就会一直运行。

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))

运行结果:

谈谈Python中的while循环语句

代码中,使用 pop() 方法弹出栈顶元素(即列表末尾的最后一个元素),并返回这个元素。

可以看到,【 想去的国家列表】在退出 while 循环之后,已经被弹空啦O(∩_∩)O~

6.2 删除列表元素

假设,目前有这些菜可点,但今天突然不想吃 “炸豆腐”,我们就可以这些写:

foods = ['拌海蜇', '炝冬笋', '炸豆腐', '炸面筋', '麻辣野鸡', '炒肉片']
while '炸豆腐' in foods:
 foods.remove('炸豆腐')
print('foods=' + str(foods))

运行结果:

foods=['拌海蜇', '炝冬笋', '炸面筋', '麻辣野鸡', '炒肉片']

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python设计模式之命令模式简单示例
Jan 10 Python
把pandas转换int型为str型的方法
Jan 29 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
Feb 23 Python
django执行原始查询sql,并返回Dict字典例子
Apr 01 Python
Pytorch实验常用代码段汇总
Nov 19 Python
Pycharm制作搞怪弹窗的实现代码
Feb 19 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
15行Python代码实现网易云热门歌单实例教程
Mar 10 #Python
Python如何爬取实时变化的WebSocket数据的方法
Mar 09 #Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 #Python
Python高级特性与几种函数的讲解
Mar 08 #Python
Python I/O与进程的详细讲解
Mar 08 #Python
举例讲解Python常用模块
Mar 08 #Python
python re库的正则表达式入门学习教程
Mar 08 #Python
You might like
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP判断文章里是否有图片的简单方法
2014/07/26 PHP
php实现图片文件与下载文件防盗链的方法
2014/11/03 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php微信支付接口开发程序
2016/08/02 PHP
原生JS实现Ajax通过GET方式与PHP进行交互操作示例
2018/05/12 PHP
caller和callee的区别介绍及演示结果
2013/03/10 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
详解XMLHttpRequest(二)响应属性、二进制数据、监测上传下载进度
2016/09/14 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
jQuery插件jqGrid动态获取列和列字段的方法
2017/03/03 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
Vue监听数据渲染DOM完以后执行某个函数详解
2018/09/11 Javascript
vue-cli中安装方法(图文详细步骤)
2018/12/12 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
微信小程序登录态和检验注册过没的app.js写法
2019/05/22 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
Python 中 Virtualenv 和 pip 的简单用法详解
2017/08/18 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
python实现大文件分割与合并
2019/07/22 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
2020/07/09 Python
宝拉珍选美国官网:Paula’s Choice美国
2018/01/07 全球购物
物理系毕业生自荐信
2013/11/01 职场文书
超市重阳节活动方案
2014/02/10 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
小学英语听课心得体会
2016/01/14 职场文书
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python