谈谈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制作简单的朴素基数估计器的教程
Apr 01 Python
python list排序的两种方法及实例讲解
Mar 20 Python
python实现发送邮件功能代码
Dec 14 Python
浅谈python正则的常用方法 覆盖范围70%以上
Mar 14 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
python保存二维数组到txt文件中的方法
Nov 15 Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
Python线程协作threading.Condition实现过程解析
Mar 12 Python
Python telnet登陆功能实现代码
Apr 16 Python
Python matplotlib实时画图案例
Apr 23 Python
Python tkinter之ComboBox(下拉框)的使用简介
Feb 05 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
Redis使用Eval多个键值自增的操作实例
2016/11/04 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
javascript学习笔记(五)正则表达式
2011/04/08 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
JavaScript中的连字符详解
2013/11/28 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
JSONP基础知识详解
2017/03/19 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
Angular.js实现动态加载组件详解
2017/05/28 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
在vue中通过axios异步使用echarts的方法
2018/01/13 Javascript
jQuery实现浏览器之间跳转并传递参数功能【支持中文字符】
2018/03/28 jQuery
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
vue 引用自定义ttf、otf、在线字体的方法
2019/05/09 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
小程序实现tab标签页
2020/11/16 Javascript
[54:15]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第二场2月1日
2021/03/11 DOTA
python使用自定义user-agent抓取网页的方法
2015/04/15 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
python实现AES加密解密
2019/03/28 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
python将unicode和str互相转化的实现
2020/05/11 Python
Selenium自动化测试工具使用方法汇总
2020/06/12 Python
python中如何写类
2020/06/29 Python
新员工试用期自我鉴定
2014/04/17 职场文书
大队干部竞选演讲稿
2014/04/28 职场文书
公民代理授权委托书
2014/09/24 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
计生办班子群众路线教育实践活动个人对照检查材料思想汇报
2014/10/04 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
新党员入党决心书
2015/09/22 职场文书
php png失真的原因及解决办法
2021/10/24 PHP