Python流程控制语句之循环语句

news2025/1/16 21:10:44

上一篇:Python流程控制语句之选择语句

文章目录

  • 前言
  • 一、while 循环
  • 二、for 循环
    • 1. 进行数值循环
    • 2. 遍历字符串
  • 三、循环嵌套
  • 总结


前言

生活中很多问题都无法一次解决,就像谚语所说:罗马不是一天建成的。一些事物必须周而复始地运转才能保证其存在的意义,就好比公交车、地铁等交通工具必须每天往返于始发站和终点站之间。类似于这样反复做同一件事的情况,称为循环。Python语言中循环有两种类型

  • 一直重复,直到条件不满足时才结束的循环,称为条件循环。只要条件为真,这种循环会持续下去,比如 while 循环
  • 重复一定次数的循环,称为计数循环,如 for 循环

一、while 循环

while 循环是通过一个条件来控制是否要继续反复执行循环体中的语句

语法如下:

while 条件表达式:
	循环体

在这里插入图片描述 说明:循环体是指一组被重复执行的语句。

当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。while 循环语句的执行流程如下图所示:

在这里插入图片描述

下面通过一个具体的代码实例来看看 while 循环的使用:

i = 0
while i <= 10:  # 当i小于等于10的时候执行下面循环体
    if i % 2 == 0:  # 如果i能被2整除,则打印出i的值
        print(i)
    i += 1  # 每执行一次循环体就给i的值加1

如上代码的作用是打印出10以内所有的偶数,代码执行结果如下图所示:

在这里插入图片描述
在这里插入图片描述 注意:在使用 while 循环语句时,一定不要忘记添加循环终止条件(例如上述代码中最后一行代码:i += 1 ),否则将产生死循环

那什么是死循环呢?就是代码会一直循环运行下去,可能会导致电脑崩溃,这是很多零基础大白最容易犯的错误,比如下面视频所示场景:

其实我们可以看到死循环之所以永无止境地运行下去,就是因为少了将循环的条件表达式结果改变为 False 的代码,所以这里一定要注意别漏掉哦。不过即使真的遇到死循环也别怕,我们可以强制结束程序。

在这里插入图片描述

如果是小的死循环,我们可以直接将代码手动终止运行,就是点击PyCharm中的红色方形按钮,如下图箭头所示:

在这里插入图片描述

如果是大的死循环,那可能会在瞬间导致电脑死机,这时候我们鼠标已经点击不了任何按钮,那就只能在任务管理器里面关掉后台PyCharm进程

打开任务管理器的快捷方式是同时按下 Ctrl + Alt + Delete 键 ,在出现的选项中点击任务管理器,进入管理器页面如下图:

在这里插入图片描述

在当前页面中鼠标右键点击 PyCharm,在下拉列表中选择结束任务,即可关掉PyCharm。

二、for 循环

for 循环是一个依次重复执行的循环。通常适用于遍历序列,以及迭代对象中的元素

语法如下:

for 迭代变量 in 对象:
	循环体

其中,迭代变量用于保存读取出的值对象为要遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串、列表等循环体为一组被重复执行的语句

for 循环语句的执行流程如下图所示:

在这里插入图片描述

1. 进行数值循环

在使用 for 循环时,最基本的应用就是进行数值的循环取用。例如想要实现从 1 到 1000 的累加,可以通过下面的代码:

result = 0  # 保存累加结果的变量
for i in range(1001):
    result += i  # 实现累加功能
print(result)  # 循环结束之后输出结果

在上面的代码中,使用了 range() 函数,该函数是Python内置的函数,用于生成一系列连续的整数,多数情况和 for 循环语句搭配使用。其语法格式如下:

range(start, end, step)

参数说明:

  • start用于指定计数的起始值,可以省略,如果省略则从 0 开始。
  • end用于指定计数的结束值(但不包括该值,如 range(5),则得到的值为 0~4,不包括 5),end参数不能省略。当 range() 函数中只有一个参数时,即表示指定计数的结束值。
  • step用于指定步长,即两个数之间的间隔,可以省略,如果省略则表示步长为 1。例如,range(1, 5) 将得到 1、2、3、4。

在这里插入图片描述 注意:在使用 range() 函数时,如果只有一个参数,那么表示指定的是 end;如果有两个参数,则表示指定的是start 和 end;如果三个参数都存在时,最后一个参数才表示步长。

例如,使用下面的 for 循环语句,将输出 10 以内的所有偶数

for a in range(0, 11, 2):
    print(a)

得到的结果如下图:

在这里插入图片描述

2. 遍历字符串

使用 for 循环语句除了可以循环数值,还可以逐个遍历字符串,例如,下面的代码可以将横向显示的字符串转换为纵向显示

a = "要么出众,要么出局"
print(a)  # 横向显示
for i in a:
    print(i)  # 纵向显示

上面代码的运行结果如下图所示:

在这里插入图片描述

在这里插入图片描述 说明:for 循环还可以用于遍历列表、元组、集合和字典等等,这些序列类型以及相关的遍历方法将在后面博客中进行介绍。

三、循环嵌套

一个循环体中嵌入另一个循环,这称为循环嵌套。例如在电影院找座位号,需要知道第几排第几列才能准确找到自己的座位号,这个寻找座位的过程就类似循环嵌套。

在 Python 中,for 循环和 while 循环都可以进行循环嵌套

例如,在 for 循环中套用 for 循环的格式如下:

for 迭代变量1 in 对象1:
	for 迭代变量2 in 对象2:
		循环体2
	循环体1

while 循环中套用 while 循环的格式如下:

while 条件表达式1:
	while 条件表达式2:
		循环体2
	循环体1

for 循环中套用 while 循环的格式如下:

for 迭代变量 in 对象:
	while 条件表达式:
		循环体2
	循环体1

while 循环中套用 for 循环的格式如下:

while 条件表达式:
	for 迭代变量 in 对象:
		循环体2
	循环体1

下面看一下循环嵌套在代码中的实际应用:用代码打印九九乘法表。这里需要用到的循环嵌套模式是for 循环中套用 for 循环,代码如下:

for a in range(1, 10):  # 输出九行
    for b in range(1, a+1):  # 输出和行数相等的列
        print(str(b) + "x" + str(a) + "=" + str(a * b) + "\t", end="")
    print("")  # 换行

程序运行结果如下图所示:

在这里插入图片描述

除了上面介绍的四种嵌套格式外,还可以实现更多层的嵌套,因为与上面的嵌套方法类似,这里就不再逐一列出了。


总结

以上就是今天跟大家介绍的循环语句,这其中 for 循环是日后开发中最常用的循环结构,其次就是 while 循环。下一篇会跟大家聊聊Python流程控制中的跳转语句,希望对大家有帮助哦❥(ゝω・✿ฺ)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178321.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux并发控制详解

目录 1.并发控制 1.1.并发概念 1.2.并发问题 2.多CPU核心 3.解决 4.中断屏蔽 5.原子操作 6.自旋锁 7.自旋锁衍生读写自旋锁 7.1.自旋锁与读写自旋锁的对比&#xff1a; 8.读写自旋锁衍生顺序锁 9.RCU 10.信号量 11.互斥体&#xff08;互斥锁&#xff09; 11.1.互…

2023起点上,一段迷茫的自我倾诉

大家新年快乐。 回顾记忆中渐渐远去的2022。 我曾想象随着一年过去我就能取得很大的进步&#xff0c;“彻底”改变自己的生活状态。其实不过幻想罢了&#xff0c;人才不会无缘无故进步呢。 我曾一度沉溺于网络世界中的关注&#xff0c;想象着自己将可以取得一些成就&#xff…

【每日一道智力题】三个火枪手(快来看人生哲理)

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大的激励…

Qt 之 QSystemTrayIcon

文章目录一、QSystemTrayIcon是什么二、属性三、公共类型四、信号提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、QSystemTrayIcon是什么 QSystemTrayIcon类为应用程序在系统托盘中提供一个图标。 如下图&#xff1a; 现代操作系统通常在桌面上提…

“深度学习”学习日记。与学习有关的技巧--Bacth Normalization

2023.1.25 现在已经学习过了&#xff0c;如果我们设置了合适的权重初始值&#xff0c;则各层的激活值分布会呈现适当的广度&#xff0c;从而可以时神经网络模型顺利的进行学习。 而 batch normalization算法 的思想就是为了使得各层有适当的广度&#xff0c;“强制性”地调整…

No package ‘vips‘ found系列问题解决方案

目录 系列报错集合 错误1 错误2 错误3 解决方案清单 系列报错集合 错误1 No package vips found Package vips was not found in the pkg-config search path. Perhaps you should add the directory containing vips.pc to the PKG_CONFIG_PATH environment variable N…

医疗实体及关系识别挑战赛

赛题概要 请本赛题排行榜前10的队友通过作品提交源代码&#xff0c;模型以及说明文档&#xff0c;截止时间为09/27/23:59:59.若文件过大&#xff0c;可发送至官网邮箱&#xff1a;AICompetitioniflytek.com。若截止时间内未提交&#xff0c;官方回通过电话联系相关选手&#x…

JavaEE8-Bean的生命周期

目录 1.Bean执行原理分析 2.Bean生命周期 2.1.实例化Bean&#xff1a;为Bean分配内存空间。&#xff08;相当于买房&#xff0c;从无到有&#xff09; 2.2.设置属性&#xff1a;Bean注入和装配。&#xff08;执行依赖类的注入&#xff1a;A需要使用B的方法&#xff0c;先初…

win32com操作word API精讲 第六集 Range(四)对齐和缩进

本课程《win32com操作word API精讲&项目实战》同步在B站、今日头条、视频号及本公众号发布。其中本平台以发布文字教程为主&#xff0c;所有平台ID均为&#xff1a;一灯编程 今天是大年初二&#xff0c;一灯在此祝愿各位朋友兔年吉祥&#xff0c;达成所想。 本节课主要讲解…

机器学习(六):模型评估

文章目录 模型评估 一、分类模型评估 二、 回归模型评估 三、拟合 1、欠拟合 2、过拟合 模型评估 模型评估是模型开发过程不可或缺的一部分。它有助于发现表达数据的最佳模型和所选模型将来工作的性能如何。 按照数据集的目标值不同&#xff0c;可以把模型评估分为分类…

Python信用卡欺诈检测 [TensorFlow]

Python信用卡欺诈检测 [TensorFlow] 提示&#xff1a;前言 Python 信用卡欺诈检测 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python信用卡欺诈检测 [TensorFlow]前言一、导入包二、加载数据三、加载数据四、 …

WebAssembly编译之(1)-asm.js及WebAssembly原理介绍

WebAssembly介绍及产生历程 1、什么是WebAssembly、为什么WASM&#xff1f; 我们知道Web的应用几乎涵盖了大半个互联网应用&#xff1b;越多越多的Web应用层出不穷&#xff0c;而然Web最致命的劣势就是其在浏览其的运行效率特忙&#xff0c;尤其是web游戏的体验不佳。 而Web…

ubuntu安装Espeak实现tts文字转语音

目录参考一、介绍二、安装安装包安装查看安装版本和espeak-data路径直接尝试安装中文包三、生产wav文件四、代码引入参考 ubuntu完美安装espeak支持中文和粤语 不再报错:Full dictionary is not installed for ‘zh’ 一、介绍 **用途&#xff1a;**可识别多语言的朗读软件 …

JavaEE day4 初识CSS

HTML如果说是前端网页中的骨架 那么CSS就是用来对骨架进行排版美化的、 CSS全称为 Cascading Style Sheets 层叠样式表 预备知识&#xff1a; html中的所有元素都有两个通用的属性&#xff1a;id和class id&#xff1a;唯一标识符&#xff0c;一个html组成元素中&#xff…

Day07 C++STL入门基础知识四——vector容器(上) 基本概念-构造函数-赋值操作-容量大小【全面深度剖析+例题代码展示】

Leave no stone unturned. 竭尽全力 文章目录1. 基本概念1.1 功能1.2 与普通数组相同点与不同点1.3 动态扩展2. 构造函数2.1 功能描述2.2 函数原型2.3 代码展示3. 赋值操作3.1 函数原型3.2 代码展示4. 容量及大小4.1 函数原型4.2 代码展示4.2.1 empty()4.2.1.1 代码展示4.2.1.2…

恶意代码分析实战 1 静态分析基础技术

1.1 Lab 1-1 对Lab01-01.exe和Lab01-01.dll进行分析 问题 将文件上传至http://www.VirusTotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗? 首先查看Lab-01-01.exe。 然后查看Lab01-01.dll。 这两个文件应该都是恶意文件。 这些文件是什么时候编译的?…

20230125英语学习

Office Buzzwords You’re Using That Annoy All Your Co-workers 说话之道&#xff1a;避开办公室行话的“雷区” Joining a new office means having to learn how to communicate with your team.But in order to do that well, it sometimes means having to learn your …

索引优化示例

目录 1.单表优化 2.两表优化 3.三表优化 4.总结 1.单表优化 创建索引前 (1)先按照where条件创建索引 按照查询条件中的三个项目创建索引&#xff0c;并且索引中的项目存在顺序&#xff0c;分别是1,2和3。 (2)创建索引 type 变成了 range,这是可以忍受的。但是 extra 里使用…

恶意代码分析实战 4 识别汇编中的C代码结构

4.1 Lab06-01.exe 由main函数调用的唯一子过程中发现的主要代码结构是什么&#xff1f; 使用Strings进行查看&#xff0c;需要注意最后的这两个字符串&#xff0c;一个是“没有网”&#xff0c;另一个是“联网成功”。 IDA 中查看图结构。 明显是if-else结构。 位于0x4010…

进程间通信/管道/消息队列/共享内存/信号量

本文重点目标&#xff1a; ⭐进程间通信介绍⭐ ⭐管道⭐ ⭐消息队列⭐ ⭐共享内存⭐ ⭐信号量⭐ 1.进程间通信介绍 什么是通信&#xff1f; 通信指的是数据传输、资源共享、通知事件和进程控制。 ①数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程 ②资源共享&a…