当前位置: 首页 > news >正文

[Python学习日记-11] Python中的流程控制(while)

[Python学习日记-11] Python中的流程控制(while)

简介

while 语法

break 和 continue 语法

while ... else ... 语法

死循环(dead loop)

简介

        从上一篇文章[Python学习日记-10] Python中的流程控制(if...else...)的练习当中我们就已经可以亏看到一点 while 的一点阵容了,这一个代码的主要功能就是循环执行一段,我们先看一下下面的一段代码:

import randomnumber = random.randint(0,10)
print("请输入你心目中的号码:")
user_number = int(input())if user_number == number:print("恭喜你,猜对了")elif user_number < number:print("不好意思,猜小了")elif user_number > number and user_number <= 10:print("不好意思,猜大了")else:print("超出范围请重猜")

        这是一个简单的猜数程序,即使是小白,也觉得的太 low 了是不是,以后要修改功能还得修改3次,因此记住,写重复的代码是程序员最不耻的行为。那么如何做到不用写重复代码又能让程序重复一段代码多次呢?循环语句就派上用场啦。

while 语法

一、语法结构

while     条件:

        执行代码...

        循环的语法相当简单,在这个代码里面 while 就是当的意思,换句话来说,while 后面带条件就是表示,当其后面的条件成立,就执行 while 下面的代码。

二、代码示例

 while 循环的简单使用:

count = 0while count < 100:print("我想让你得到我。。。。", count)count += 1    # 循环条件的计数运算,如果条件没有变化将会变成死循环

 下面我们使用 while 来改造一下之前写的猜数代码吧

import randomnumber = random.randint(0,10)count = 0
while count < 5:print("请输入你心目中的号码:")user_number = int(input())if user_number == number:print("恭喜你,猜对了")elif user_number < number:print("不好意思,猜小了")elif user_number > number and user_number <= 10:print("不好意思,猜大了")else:print("超出范围请重猜")count += 1

        经过我们的改造现在代码已经具有了一定的便捷性,但是还是存在一些 bug,从上面的效果图你会看到就算你猜对了还是会继续让你猜,知道你猜够5次为止才会结束循环,如果想要结束这种尴尬的场面,那么我们就要使用下面将要提到的 break 语法了。

break 和 continue 语法

        上面我们改造的代码当中存在着一个猜对了还会继续让你猜的 bug,有的人可能会想到使用 exit() 进行退出,但是这个方法是直接退出程序的,如果想结束循环后再执行写代码的话这个就不太好了,而我们要怎么只退出循环而不退出程序呢?那就要用到 break 了。

        break 的作用是终止所在的循环,这里还有一个类似的语法,那就是 continue 语法,这个语法是终止当次循环,但它不会结束循环,而是进入下一次循环当中。

一、语法结构

while     条件:

        执行代码...

        break

while     条件:

        执行代码...

        continue

二、代码示例

break示例:

        那我们使用 break 语法来修复上面代码猜对后继续执行的 bug

import randomnumber = random.randint(0,10)count = 0
while count < 5:print("请输入你心目中的号码:")user_number = int(input())if user_number == number:print("恭喜你,猜对了")break    # 终止循环elif user_number < number:print("不好意思,猜小了")elif user_number > number and user_number <= 10:print("不好意思,猜大了")else:print("超出范围请重猜")count += 1

continue 示例:

        我们使用 continue 语法来实现打印除了10-20之外1到100之间的数

count = 0
while count < 100:count += 1if count >= 10 and count <= 20:continue    # 终止当次循环,进入下次循环print(count)

 

while ... else ... 语法

        这个语法的意思是当循环结束后将会执行 else 下的代码,这个 else 和循环是一体的,所以说当遇到 break 是不会执行 else 下的代码的

一、语法结构

while     条件:

        执行代码...

else:

        执行代码...

二、代码示例

当程序正常结束时:

count = 0
while count < 100:count += 1if count > 10 and count < 20:continue    # continue 只是跳过一次循环,并不会结束 while,所以 else 还是会继续执行的print(count)
else:    # 当循环正常结束时执行print("我正常结束啦")

当遇到 break 终止循环时:

count = 0
while count < 100:count += 1if count == 50:print("我被 break 了")breakprint(count)
else:    # 当循环正常结束时执行,被break中止时,则不执行print("我正常结束啦")

        这里顺带一提,如果把上面代码中的 break 替换成 exit() 照样也不会执行 else 下的代码,需要注意的是 break 和 continue 只能在循环中使用,当然这里的循环除了 while 外还包括 for 循环,不要突发奇想的想在程序中某个地方跳过某段代码时使用,这样会报错的。 

死循环(dead loop)

        死循环在介绍 while 语法时也提到过,但是那时候的死循环是我们想要避免的,而我们现在说的死循环是我们想要的死循环,也就是说是正确的死循环。死循环我们什么时候会使用呢?其实还挺常用的,因为我们执行很多程序都是需要和用户不断交互的,这就说明我们的程序不能说输入多少次就结束,而是用户输入特定的指令后才能结束程序,这样我们就需要使用到死循环了

一、语法结构

while     True:

        执行代码...

二、代码示例

while True:print("你是风儿我是沙,缠缠绵绵到天涯....")

 

        执行这个代码将会运行到天昏黑地、世界末日、长长久久...所以说当你有需求写一个死循环时请确认清楚循环内的内容是否正确,如果循环内是运算量很大,或者内存占用量很大的话,很容易导致电脑蓝屏或死机。

        本篇练习:双色球彩票程序练习


http://www.mrgr.cn/news/22990.html

相关文章:

  • 学习笔记八:基于Jenkins+k8s+Git+DockerHub等技术链构建企业级DevOps容器云平台
  • LeetCode移除元素
  • 【C++ Primer Plus习题】14.1
  • 【Linux】万字解读<进程控制>:创建&中止&等待&替换
  • Linux 用户和组的增删改查,用户切换及权限超详细解读
  • SAP 免费学习网站推荐
  • 【AI绘画】Midjourney后置指令--seed、--tile、--q、--chaos、--w、--no详解
  • 20240910 每日AI必读资讯
  • Iceberg与SparkSQL写操作整合
  • 电压跟随器的作用是什么?
  • Vulnhub靶场 DC-1
  • 机器学习特征分析
  • 线性代数 第七讲 二次型_标准型_规范型_坐标变换_合同_正定二次型详细讲解_重难点题型总结
  • java 自定义注解校验实体类属性
  • 离心萃取机废旧磷酸铁锂电池回收工艺流程
  • Hive任务优化参数整理
  • 基于C++网络编程入门学习(一)-- Linux环境下的C++程序编译与运行
  • pdf文件怎么编辑?7大常用的pdf在线编辑技巧,免费好用!
  • 开源模型应用落地-sherpa-onnx-AIGC应用探索(十)
  • 基于人工智能的实时交通监控系统