前言

python中有两种循环,while和for,两种循环的区别是,while循环之前,先判断一次,如果满足条件的话,再循环,for循环的时候必须有一个可迭代的对象,才能循环,比如说得有一个数组。

循环里面还有两个比较重要的关键字,continue和break,continue的意思是,跳出本次循环,继续重头开始循环,break的意思是停止整个循环,也就是说在continue和break下面的代码都是不执行的。

for 循环用于集合,其中的每一个元素都会执行同一段代码块; 而 while 循环会不断地运行同一段代码块, 直到不满足指定的条件为止。

1 示例

我们使用 while 循环语句,设计一个小游戏。让玩家输入一个数字,程序将告诉他,这个数是奇数,还是偶数:

# 输入提示

prompt = '输入一个数字,我将告诉你,它是奇数,还是偶数哦O(∩_∩)O~'

prompt += ' 输入“不玩了”,将退出本程序: '

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 += ' 输入“不玩了”,将退出本程序: '

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=['拌海蜇', '炝冬笋', '炸面筋', '麻辣野鸡', '炒肉片']

总结

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

python while循环语句-谈谈Python中的while循环语句相关推荐

  1. pythonfor循环语句例子_Python中的for循环语句

    for循环 for..in是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目. 使用for语句 案例: fori inrange(1,5):print(i)else:print( ...

  2. python中for循环流程图_Python编程中的for循环语句学习教程

    Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequence: statements(s) ...

  3. python索引例子_谈谈python中的索引

    最近以python为工具,取代VBA处理工作中Excel遇到的小问题,我觉得其优点:一是语言更清爽友善,因为VBA的语言一来IDE难用,语法风格不大气优雅(我个人的见解):二是,我一直怀疑Excel对 ...

  4. python种颜色循环_python – 重置Matplotlib中的颜色循环

    您可以使用Axes.set_color_cycle将颜色循环重置为原始颜色.查看此代码,可以执行实际工作: def set_color_cycle(self, clist=None): if clis ...

  5. python是不是特别垃圾-谈谈python垃圾回收机制

    什么是垃圾回收机制? 首先,咱先来解释名词,垃圾回收是不是就是将没用的,废弃的东西回收起来. 在坐的各位都没有女朋友对吧,那难以想象你们的房间会是一个什么样子,可能会有很多垃圾,很凌乱,自己也不收拾. ...

  6. python 其他语言_谈谈Python和其他语言的区别

    Python属于解释型语言,当程序运行时,是一行一行的解释,并运行,所以调式代码很方便,开发效率高, 还有龟叔给Python定位是任其自由发展.优雅.明确.简单,所以在每个领域都有建树,所有它有着非常 ...

  7. c语言输入循环语句,C语言中输入输出和循环语句详解.ppt

    C语言中输入输出和循环语句详解 C语言的输入输和循环分支语句详解 本章主要向大家介绍下C语言的输入和输出功能以及循环分支语句的使用 第4章 顺序结构程序设计 3.1 C语言语句 3.2 赋值语句 3. ...

  8. java for循环返回值_Java中的for循环——通过示例学习Java编程(9)

    作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=21 循环用于反复执行同一组语句,直到满足特定条件为止 ...

  9. java中无限循环的方法_Java中的无限循环

    Java中的无限循环 在Java中查看下面的无限while循环. 它会导致它下面的语句编译时错误. while(true) { System.out.println("inside whil ...

  10. oracle查大事务语句,查询Oracle 中死事务的语句

    查询Oracle 中死事务的语句 SQL> SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ 2  KTUXESTA Statu ...

最新文章

  1. 酷讯出来的张一鸣为什么做了新闻不是旅游?
  2. PTP NTP kernel 驱动讲解 (未完待续)
  3. 预处理指令的开始和结束
  4. Android 启动分析 1
  5. 大数据WEB阶段 (六)MySql详解(一)
  6. Java程序员需要掌握的计算机底层知识(二):操作系统、内核、用户态与内核态、系统调用的执行过程
  7. HBase的布隆过滤器详解
  8. 你的心事我全知晓——心情日记小程序丨实战
  9. ipmitool 设置网关_IPMI 接口配置
  10. 秒表设计实验报告C语言,电子秒表设计实验报告
  11. SpringBoot-Mail 发邮件(单发、群发、加附件、HTML格式)
  12. mysql初始化实例报错_初始化 mysql时报错
  13. css3 rem的用法
  14. Seoer,牵起用户与搜索引擎双手的魔术师
  15. Android PopupWindow的简单说明
  16. 进销存软件网络版连接不上,如何设置IP地址
  17. 明日之后在同一个服务器找不到人,明日之后怎么跨区加好友 看这里
  18. Quill富文本的使用以及自定义图片和视频处理事件
  19. chatgpt可以降重论文吗-chatgpt降重论文软件
  20. 信息科学学术论文常用词汇

热门文章

  1. 本人常用的一些编码小Tips(虽然不多,但很好用)
  2. SpringMVC 国际化
  3. 流行的9个Java框架介绍: 优点、缺点等等
  4. 40个方法优化你的PHP
  5. 在Windows7 (SP1)配置IIS7.5 + .Net Framework 4.0.30319
  6. 解决java web项目导入后出现的问题 ---cannot be read or is not a valid ZIP file
  7. Debian与《玩具总动员》
  8. Mybatis 查询小技巧
  9. JavaWeb学习笔记28--Filter高级开发
  10. php将科学计算法得出的结果转换成原始数据