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

ops/2024/10/11 3:21:47/

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

简介

while 语法

break 和 continue 语法

while ... else ... 语法

死循环(dead loop)

简介

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

python">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 循环的简单使用:

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

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

python">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

python">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之间的数

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

 

while ... else ... 语法

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

一、语法结构

while     条件:

        执行代码...

else:

        执行代码...

二、代码示例

当程序正常结束时:

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

当遇到 break 终止循环时:

python">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:

        执行代码...

二、代码示例

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

 

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

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


http://www.ppmy.cn/ops/108845.html

相关文章

【ARM compiler】生成ELF文件中包含了那些内容

【更多软件使用问题请点击亿道电子官方网站】 文档目标&#xff1a;用于了解ARM compiler生成的ELF文件中存储的内容进行了解 问题场景&#xff1a;ELF文件主要用于通过调试软件对于代码的运行顺序和数据链接等内容进行分析。了解一下ARM compiler生成ELF文件包含那些内容。 软…

排序算法(冒泡排序,选择排序,插入排序,快速排序)

冒泡排序 相邻的数据两两比较&#xff0c;小的放前面&#xff0c;大的放后面 package seach;public class A04_BubbleDemo1 {public static void main(String[] args) {int[] arr {2,4,3,1,6,8,9,5};//外循环&#xff1a;表示我要执行多少论 如果有n个数据&#xff0c;那么执…

使用 Python 读取 Excel 数据的详细教程

使用 Python 读取 Excel 数据的详细教程 Python 提供了多种读取 Excel 文件的方式&#xff0c;最常用的库是 pandas 和 openpyxl。下面我将详细介绍如何使用这两个库来读取 Excel 文件&#xff0c;并包含一些实用示例&#xff0c;帮助你撰写博客。 1. 安装必要的依赖 首先&a…

2024国赛数学建模ABC题思路模型

完整的思路模型请查看文末名片 完整的思路模型请查看文末名片 完整的思路模型请查看文末名片

QT多个界面

主函数 #include "widget.h" #include "second.h" #include <QApplication>int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;Second s;QObject::connect(&w,&Widget::my_signals,&s,&Second::my_slots);w.…

生成树详细配置(STP、RSTP、MSTP)

目录 一. 实验内容 STP配置实验 RSTP配置实验 MSTP配置实验 二. 1 ) STP配置实验 实验拓扑 ​编辑 实验配置 实验结果 2 ) RSTP配置实验 实验拓扑 实验配置 实验结果 3 ) MSTP配置实验 实验拓扑 实验配置 ​编辑 实验结果 三 实验总结 一. 实验内容 1) …

使用Ansible实现高效服务器配置管理的最佳实践

使用Ansible实现高效服务器配置管理的最佳实践 在现代IT运维中&#xff0c;服务器的配置管理是一个关键环节。传统的手动配置方法不仅耗时耗力&#xff0c;而且容易出错&#xff0c;特别是在规模庞大的服务器集群中&#xff0c;配置的一致性难以保证。Ansible作为一款无代理的…

redis基本数据结构-string

文章目录 1. redis的string数据结构2. 常见的业务场景2.1 缓存功能案例讲解背景优势解决方案代码实现 2.2 计数器案例讲解背景优势解决方案代码实现 2.3 分布式锁案例讲解背景优势解决方案代码实现 2.4 限流案例讲解背景优势解决方案代码实现 2.5 共享session案例讲解背景优势解…