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

Python从入门到高手4.2节-掌握循环控制语句

目录

4.2.1 理解循环控制

4.2.2 for循环结构

4.2.3 循环结构的else语句

4.2.4 while循环结构

4.2.5 循环结构可以嵌套

4.2.6 国庆节吃好玩好


4.2.1 理解循环控制

我们先来搞清楚循环的含义。以下内容引自汉语词典:

循环意指往复回旋,指事物周而复始地运动或变化,或反复地连续做某事

那么,放到编程语言中进行类比,则很容易理解循环控制: 通过某些指令来控制程序反复地执行。通过控制程序指令反复地执行,可将程序员从繁琐的代码编写工作中解放出来。同学们先思考下面这个问题:

计算1到10之间的所有自然数的和

乍看是一个很简单的问题,要解决这个问题,只需将1到10之间的所有自然数罗列出来,然后再直接相加即可:

sum = 1+2+3+4+5+6+7+8+9+10

但如果把问题改成“计算1到100000之间的所有自然数的和”,该怎么编写程序代码?通过手写的方式,逐数字的进行相加是非常低效的。对于这类问题,编程语言中的循环控制可以提供完美的解决方案。

4.2.2 for循环结构

在Python中通过for与while关键字来定义循环结构,循环结构中的else语句用来定义循环正常退出时所执行的操作。

同学们可以在交互模式中查找for,while等关键字的定义与用法,要养成在交互模式中进行查找的良好习惯。例如查找for关键字的定义及用法:help("for")。

for循环的语法结构:

for target_list in expression_list:pass
else:pass

target_list表示目标值列表,expression_list表示表达式列表,循环中的else语句用来定义循环正常退出时所执行的操作。在for循环结构中,会逐一迭代出表达式列表中的值,然后将值赋值给target_list所代表的变量。

代码实例:

for number in 1,2,3,4,5:print(number)"""
程序输出为:1
2
3
4
5
"""

代码中的for循环会迭代表达式列表中的值,然后将迭代出的值赋值给变量number。表达式列表中的值为(1,2,3,4,5), 集合中有5个值,所以for循环一共迭代了5次,每次都将迭代得到的值赋值给了变量number。比如第一次迭代出的值为1,然后赋值给变量number,第二次迭代出的值为2,同样赋值给变量number,以此类推。

以逗号分隔的表达式其实是Python中的元组,在后面介绍数据类型时,会对元组类型进行详细讲解

4.2.3 循环结构的else语句

循环中的else语句不是必须的,如需定义循环正常退出时所执行的收尾操作,那么需要在for循环结构中加一个else语句。

for number in 1,2,3,4,5:print(number)
else:print("for循环正常退出")"""
程序输出为:1
2
3
4
5
for循环正常退出
"""

所谓的循环非正常退出,是指在循环中执行了break语句,也即,只要在循环体中执行了break, 就是循环的非正常退出。

break语句只能用于循环结构中,如果用在其它的地方,Python会抛出语法错误的异常信息。

代码实例:

for number in 1,2,3,4,5:print(number)# 如果当前number指向的值大于3,就执行break退出循环 if number > 3:break
else:# 如果for循环非正常退出# 就不会执行else语句下面的代码print("for循环正常退出")"""
程序输出为:
1
2
3
4
"""

4.2.4 while循环结构

先来看下while循环的语法结构:

while expression:pass
else:pass

expression为条件表达式,当表达式的值为真值时,会执行冒号下方的代码。while中的else同for循环中的else一样,用来定义循环正常退出时所执行的操作。在while循环中同样可以执行break来退出循环。

代码实例:

while 0:print("这行代码永远不会执行")
while "":print("这行代码永远不会执行")

while中的表达式为0,  0值为假值,所以不会执行while循环中的print函数。

在迄今学过的内容中,0值和空值都为假值。空字符串是空值,自然也是假值

代码实例:

x = 3
y = 3
while x+y > 0:# 先取出变量x指向的值,然后与1进行相减# 最后将相减的值再赋值给变量x,以此实现了自减x = x-1y = y-1print("x+y=", x+y)"""
程序输出为:x+y=4
x+y=2
x+y=0
"""

代码讲解:

x与y的初始值都为3,x+y的值为6,所以x+y > 0的值为真值。在while循环中不断将x与y的值减-1,当x与y的值都为0时,x+y=0,那么表达式x+y > 0的值为假值,所以不会运行循环体中的代码。

4.2.5 循环结构可以嵌套

循环结构同条件控制结构一样,也可以嵌套。同样地,在进行嵌套时要注意代码缩进,同时嵌套的深度不宜过深,否则会导致代码的可读性变差,代码难以维护。以下是一个代码实例, 计算1到10之间的所有合数的和:

# 定义变量sum_of_numbers用来保存所有合数的和
sum_of_numbers = 0
# 合数指自然数中除了能被1和本身整除外,还能被其他数(0除外)整除的数
# 所以首先排除1和2
number = 3while number <=10:# 通过for循环和range来遍历从2到number之间的所有自然数for _ in range(2, number):# % 是Python中的求余计算符号if number % _ == 0:# number能被其他数整除时,余数为0# 如果余数为0,说明为合数sum_of_numbers = sum_of_numbers + numberbreak    # 不断进行自加,当number指向的值大于10时,会退出循环number = number +1
else:print(sum_of_numbers)

在上文的代码实例中,在while循环中嵌套了for循环,同样可以在while中嵌套while循环,在for循环中嵌套while循环,for循环。同学们可将上文中的代码实例全部改成for循环结构,以比较while循环与for循环的使用区别。

4.2.6 国庆节吃好玩好

跟薯条老师学后端开发,高级爬虫(JS逆向+安卓逆向),数据分析,大数据开发,量化交易,以及机器学习+深度学习算法。坚定自己的学习目标,保持学习的热情,那你成为高手只是时间问题。

薯条老师的学生在南方电网,林氏家居,京东,阿里等大厂。想系统学习Python和Java的同学,可以移步薯条老师的个人技术博客:薯条老师的个人技术博客icon-default.png?t=O83Ahttp://www.chipscoco.com/ 对本节教程有任何不懂的同学,亦可在评论区中进行评论。薯条老师会详细解答你们提出的每一个问题。

 

相关文章:

Python从入门到高手4.2节-掌握循环控制语句

目录 4.2.1 理解循环控制 4.2.2 for循环结构 4.2.3 循环结构的else语句 4.2.4 while循环结构 4.2.5 循环结构可以嵌套 4.2.6 国庆节吃好玩好 4.2.1 理解循环控制 我们先来搞清楚循环的含义。以下内容引自汉语词典: 循环意指往复回旋&#xff0c;指事物周而复始地运动或变…...

CSS 中的overscroll-behavior属性

overscroll-behavior 是 CSS 中的一个属性&#xff0c;它用于控制元素在发生滚动时&#xff0c;当滚动范围超出其边界时的行为。这个属性对于改善用户体验特别有用&#xff0c;尤其是在移动端设备上&#xff0c;当用户尝试滚动一个已经达到滚动极限的元素时&#xff0c;可以通过…...

GPT对话知识库——在STM32的平台下,通过SPI读取和写入Flash的步骤。

目录 1&#xff0c;问&#xff1a; 1&#xff0c;答&#xff1a; 步骤概述 步骤 1&#xff1a;SPI 初始化 步骤 2&#xff1a;Flash 初始化&#xff08;可选&#xff09; 步骤 3&#xff1a;发送读取命令 示例&#xff1a;发送读取数据命令 步骤 4&#xff1a;读取数据…...

Pytorch基本知识

model.state_dict()、model.parameters()和model.named_parameters()的区别 parameters()只包含模块的参数,即weight和bias(包括BN的)。 named_parameters()返回包含模块名和模块的参数的列表,列表的每个元素均是包含layer name和layer param的元组。layer param就是param…...

vue3使用Teleport 控制台报警告:Invalid Teleport target on mount: null (object)

Failed to locate Teleport target with selector “.demon”. Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree main.…...

使用产品前的环境搭建

对于想学习编程的朋友们&#xff0c;使用本产品解决日常功能需求的同时会对自己编程能力具有较大帮助和提升。 目录 环境搭建 前言&#xff1a; 安装python 安装vscode 下载安装Anaconda 通过conda配置python环境 创建虚拟环境 查看环境是否创建成功 激活环境 安装pyt…...

JAVA基础语法 day07

一、final关键字 1.1final的基础知识 用来修饰类&#xff0c;方法&#xff0c;变量 final修饰类&#xff0c;该类被称为终极类&#xff0c;不能被继承了 final修饰方法&#xff0c;该方法称为终极方法&#xff0c;不能被重写了 final修饰变量&#xff0c;该变量仅能被赋值…...

ZLMediaKit编译运行

ZLMediaKit-github官网 快速开始 代码依赖与版权声明 MediaServer支持的HTTP MediaServer支持的HTTP HOOK API cd ZLMediaKit mkdir build cd build cmake … && make -j20 cd ZLMediaKit/release/linux/Debug ./MediaServer //./MediaServer -h 查看 //./MediaSe…...

AlmaLinux 9 安装mysql8.0.38

文件下载 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.39-linux-glibc2.12-x86_64.tar 选择合适系统版本 下载后解压 tar -xvf mysql-8.0.39-linux-glibc2.12-x86_64.tar解压后里面有三个文件夹 使用mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz即可&#xff0c…...

NLP任务之文本分类(情感分析)

目录 1 加载预训练模型对应的分词器 2 加载数据集 3 数据预处理 4 构建数据加载器DataLoader 5 定义下游任务模型 6 测试代码 7 训练代码 #做&#xff08;中文与英文的&#xff09;分类任务&#xff0c;Bert模型比较合适&#xff0c;用cls向下游任务传输数…...

MIMO 2T4R BBU RHUB AAU

MIMO&#xff08;Multiple-Input Multiple-Output&#xff0c;多输入多输出&#xff09;是一种无线通信技术&#xff0c;它通过在发射端和接收端使用多个天线来提高数据传输速率和信号质量。"2T4R"是MIMO技术中的一种配置&#xff0c;其中"2T"代表有两个发…...

图说数集相等定义表明“R各元x的对应x+0.0001的全体=R“是几百年重大错误

黄小宁 设集A&#xff5b;x&#xff5d;表A各元均由x代表&#xff0c;&#xff5b;x&#xff5d;中变量x的变域是A。其余类推。因各数x可是数轴上点的坐标故x∈R变为实数yx1的几何意义可是&#xff1a;一维空间“管道”g内R轴上的质点x∈R(x是点的坐标)沿“管道”g平移变为点y…...

只出现一次的数字|||(考察点为位操作符)

目录 一题目&#xff1a; 二思路汇总&#xff1a; 三代码解答&#xff1a; 一题目&#xff1a; leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二思路汇总&#xff1a; 思路&#xff1a;如果直接对数组按位异或&#xff0c;那么最后得到的是a^b&a…...

PMP--三模--解题--81-90

文章目录 13.干系人管理--权力利益方格--基于干系人的职权级别&#xff08;权力&#xff09;、对项目成果的关心程度&#xff08;利益&#xff09;、对项目成果的影响能力&#xff08;影响&#xff09;&#xff0c;或改变项目计划或执行的能力&#xff0c;每一种方格都可用于对…...

脚本自动化创建AWS EC2实例+安装ElasticSearch和Kibana+集成OpenTelemetry监控

文章目录 为什么要通过脚本来部署服务器&#xff1f;EC2实例类型硬件选择实例类型的选择内存CPU存储架构操作系统最终的选择 其他配置安全组配置网络配置IAM RoleKey Pair内部域名 书写自动化脚本属性文件EBS配置文件创建EC2实例命令user data 文件OpenTelemetry监控 创建内部域…...

【设计模式-命令】

定义 命令模式&#xff08;Command Pattern&#xff09;是一种行为设计模式&#xff0c;它将请求封装为一个对象&#xff0c;从而使您能够使用不同的请求、排队请求或记录请求&#xff0c;并支持可撤销的操作。该模式通过将请求与其执行分离&#xff0c;使得请求者和接收者之间…...

【API安全】crAPI靶场全解

目录 BOLA Vulnerabilities Challenge 1 - Access details of another user’s vehicle Challenge 2 - Access mechanic reports of other users Broken User Authentication Challenge 3 - Reset the password of a different user Excessive Data Exposure Challenge …...

HCIP-HarmonyOS Application Developer 习题(四)

1、以下哪个Harmonyos的AI能力可以提供文档翻拍过程中的辅助增强功能? A.文档检测矫正 B.通用文字识别 C.分词 D.图像超分辨率 答案&#xff1a;A 分析&#xff1a;文档校正提供了文档翻拍过程的辅助增强功能&#xff0c;包含两个子功能&#xff1a; 文档检测&#xff1a;能够…...

【Python报错已解决】TypeError: ‘int‘ object is not subscriptable

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

《OpenCV》—— 指纹验证

用两张指纹图片中的其中一张对其验证 完整代码 import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)def verification(src, model):sift cv2.SIFT_create()kp1, des1 sift.detectAndCompute(src, None)kp2, des2 sift.detectAndCompute(model, None)fl…...

HBase 性能优化的高频面试题及答案

目录 高频面试题及答案1. 如何通过数据建模优化 HBase 性能?2. 如何优化 HBase 的写入性能?3. 如何通过压缩优化 HBase 的存储性能?4. 如何通过调整 RegionServer 配置优化性能?5. 如何优化 HBase 的读取性能?6. 如何通过使用 HBase 的版本控制优化性能?7. 如何通过使用合…...

excel不经过后台实现解析和预览(vue)

数据流读取和数据解析方面通过xlsx组件 安装命令 npm install xlsx -S 它先将上传的excel变成流&#xff0c;然后再根据流进行下一步处理。这个流可以交给其他组件处理比如我用的预览组件是用了其他组件&#xff08;vue-office/excel&#xff09;就是把这个流交给其它组件就…...

html5 + css3(上)

目录 HTML认知web标准vscode的简介和使用注释标题和段落换行和水平线标签文本格式化标签图片图片-基本使用图片-属性 绝对路径相对路径音频标签视频标签超链接 HTML基础列表列表-无序和有序列表-自定义 表格表格-使用表格-表格标题和表头单元格表格-结构标签&#xff08;了解&a…...

Flask+微信小程序实现Login+Profile

Python代码 首先flask的session用不了&#xff0c;只能用全局变量来实现。 import pymysql from flask import Flask, request, jsonify, session from flask_cors import CORS from flask import make_responseapp Flask(__name__) CORS(app, supports_credentialsTrue) #…...

后缀表达式中缀表达式转后缀表达式

后缀表达式的计算机求值 计算规则 从左至右扫描表达式&#xff0c;遇到数字时&#xff0c;将数字压入堆栈&#xff0c;遇到运算符时&#xff0c;弹出栈顶的两个数&#xff0c;用运算符对它们做相应的计算&#xff08;次顶元素 和 栈顶元素&#xff09;&#xff0c;并将结果入…...

Qemu开发ARM篇-7、uboot以及系统网络连接及配置

文章目录 1、uboot及linux版本网络设置1、宿主机虚拟网卡创建2、uboot使用tap0网卡3、启动测试 2、访问外网设置 在上一篇Qemu开发ARM篇-6、emmc/SD卡AB分区镜像制作并通过uboot进行挂载启动中&#xff0c;我们制作了AB分区系统镜像&#xff0c;并成功通过uboot加载kernel以及d…...

两数相加leetcode

第一个是测试用例代码&#xff0c;测试的是两个带头的逆序链表相加&#xff0c;并且有反转操作 但是题目要求的是不带头链表直接相加&#xff0c;不需要逆转&#xff0c;输出结果也是逆序的&#xff0c; 题解放在第二个代码中 #include<stdio.h> #include<stdlib.h…...

C0004.Qt中QComboBox设置下拉列表样式后,下拉列表样式无效的解决办法

问题描述 我们平时在使用Qt Creator对控件QComboBox的样式进行设置后&#xff0c;在运行程序启动界面时&#xff0c;发现设置的样式无效&#xff0c;效果如下&#xff1a; /* 设置下拉菜单框的样式 */ QComboBox QAbstractItemView {border: 1px solid rgb(161,161,161); /* …...

AI 对话工具汇总

&#x1f423;个人主页 可惜已不在 &#x1f424;这篇在这个专栏AI_可惜已不在的博客-CSDN博客 &#x1f425;有用的话就留下一个三连吧&#x1f63c; 目录 前言: 正文: 前言: 在科技飞速发展的时代&#xff0c;AI 对话正逐渐成为我们获取信息、交流思想的新方式。它以强…...

面试题05.08绘制直线问题详解(考察点为位运算符)

目录 一题目&#xff1a; 二详细思路汇总&#xff1a; 三代码解答&#xff08;带注释版&#xff09;&#xff1a; 一题目&#xff1a; leetcode原题链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 二详细思路汇总&#xff1a; 这里先剧透一下简单版思路哦&…...

招聘网站源码下载/软文素材库

工程文件为AirCode&#xff0c;批处理文件为bulit.bat&#xff08;与*.sln文件在同级目录&#xff09;。 以下是批处理的代码&#xff1a; echo %~dp0rem set build_config"Debug|Win32" rem set build_config$ALL set build_config"Release|Win32"rem set…...

济宁有没有专门做网站的/营销型网站模板

今天终于将交叉编译环境搭建完成,第一次用linux的一些命令,还真不习惯,不过用多了也不错,Ubuntu8.04是在虚拟机下安装的,下面简单记录自己安装的过程,以便日后查阅.Step1:下载cross-3.2.tar.bz2,然后复制到/home文件下:sudo cp cross-3.2.tar.bz2 /home再解压到/usr/local文件夹…...

个人备案网站可以做电影站吗/b2b电子商务平台网站

昨天测试视频失败。 今天继续改进。 通过在网上询问&#xff0c;找到了问题所在&#xff0c;终于可以进行视频了。 转载于:https://www.cnblogs.com/gting/p/4537338.html...

网站维护 推广/口碑营销经典案例

目录 背景 下载war包 以java可执行文件运行 访问Jenkins 配置插件 测试插件安装 背景 上一篇文章&#xff0c;作者已经分享了再window环境下如何使用Jenkins的msi版本&#xff0c;但是这个版本的不好地方就是插件安装出现瓶颈。虽然上一篇文章在最后也分享了一种基于手动…...

河北保定建设工程信息网站/最新热点新闻

文章目录前言1.在线翻译2.离线翻译一、多语言离线翻译系统1.开发环境2.准备离线翻译包3.准备python代码4.调试翻译结果5.Python翻译服务对接到.NET Core前言 1.在线翻译 在线翻译&#xff0c;一般是指在线翻译工具&#xff0c;如百度翻译、阿里翻译1688或Google翻译等。这类翻…...

哪个网站做效果图好/台州seo排名扣费

环境说明 操作系统&#xff1a;CentOS 7 JDK&#xff1a;1.8 Erlang&#xff1a;19.0.4或最新版 RabbitMQ&#xff1a;3.6.12或最新版 版本对应关系 典型应用场景 1、跨系统的异步通信 人民银行二代支付系统&#xff0c;使用重量级消息队列 IBM MQ&#xff0c;异步&#xff0…...