Python之循环语句
循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。

循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础

while循环的基础语法
生活中的循环

程序中的循环

只要条件满足 会无限循环执行
如下程序:
i = 0
while i < 100:print("小美,我喜欢你")i += 1
1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环
2. 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
3. 空格缩进和if判断一样,都需要设置
同if语句一样,空格缩进不能忘,要制定好循环终止条件,否则将无限循环!
案例
接下来做一个小案例增加对前面if判断和while循环的熟练掌握:
案例要求:
设置一个范围1-50的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数,
要求实现:
*猜数无限次机会,直到猜中为止
*若每次猜不中,会提示大了或小了
*猜完数字后,系统会提示总共猜了几次
随机数构建方法:
import random
num = random.randint(1, 50)
程序代码如下:
# 构建一个随机数字变量
import random
num = random.randint(1, 50)
print("欢迎来到猜数游戏,在下方输入你猜的数值范围(1~50)")
# 定义变量 记录总共猜测的次数
count = 0
# 通过while语句判断进行数字的猜测
flag = True
while flag:guess_num = int(input("输入你猜测的数:"))count +=1if guess_num == num:print("恭喜你猜中了!")# 循环的终止条件flag = Falseelse:if guess_num > num:print("猜的大了点哦~")else:print("猜的小了点哦~")
print(f"你总共猜了:{count}次!")
我来对这段代码做个解释:
前四行看注释不再讲解,我们从程序第6行开始进入while循环 ,第五行的行为:flag = True 是为了实现让程序一直运行,因为要求:无限次机会,所以终止条件不适合用数字累加来判断,可以考虑布尔类型本身(True or False),
在正式进入while循环后:
运行效果:

while循环的嵌套
程序中的循环嵌套:

同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
基于空格缩进来决定层次关系
注意条件的设置,避免出现无限循环(除非真的需要无限循环)
案例
案例要求:
通过while循环,输出如下九九乘法表内容
根据案例要求我们可以使用2层循环,通过外层控制行,内层控制列
外层循环和内存循环的累加数字变量,用以辅助输出乘法表的数值
代码实现:
# 定义外层循环控制变量
i = 1
while i <= 9:# 定义内层循环控制变量j = 1while j <= i:# 内层循环的print语句,不需要换行,通过\t 制表符进行对其print(f"{j} * {i} = {j * i}\t", end='')j += 1i += 1print() # print空内容,就是输出一个换行
print输出不换行
默认print语句输出内容会自动换行,但在print语句中,加上 end=’’ 即可输出不换行
制表符\t
在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。
它可以让我们的多行字符串进行对齐。
运行效果:

for循环的基础语法
基础语法
除了while循环语句外,Python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:
1.while循环的循环条件是自定义的,自行控制循环条件
2.for循环是一种”轮询”机制,是对一批内容进行”逐个处理
for循环就是将”待办事项”逐个完成的循环机制

程序中的for循环:

从待处理数据集中:逐个取出数据赋值给临时变量
for循环语句遍历字符串:

同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
for循环的注意点
for循环是无法定义循环条件的,只能被动取出数据处理,也需要注意,循环内的语句,同样需要有空格缩进
range语句

语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:字符串,列表,元组等
for循环语句,本质上是遍历:可迭代对象。
尽管除字符串外,其它可迭代类型目前没学习到,但不妨碍我们通过学习range语句,获得一个简单的数字序列(可迭代类型的一种)。
语法1:
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0, 1, 2, 3, 4]
语法2:
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
语法3:
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5, 10, 2)取得的数据是:[5, 7, 9]
for循环遍历range序列
# for循环处理字符串
for i in range(5):print(i)
运行结果如下:

变量作用域
for循环的变量作用域

回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量
为什么是临时的呢?
临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
但如果在for循环外部访问临时变量:
实际上是可以访问到的
在编程规范上,是不允许、不建议这么做的
如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义
如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义

如图,每一次循环的时候,都会将取出的值赋予i变量。
由于i变量是在循环之前(外)定义的
在循环外访问i变量是合理的、允许的
如图,每一次循环的时候,都会将取出的值赋予i变量。
由于i变量是在循环之前(外)定义的
在循环外访问i变量是合理的、允许的
for循环的嵌套
同while一样,for循环也支持嵌套使用
以向小美表白的案例为例
坚持表白100天
每天送花10束

表白100天,每一天都会送10朵玫瑰花
我们目前知道的2个循环,while循环和for循环。
这两类循环语句是可以相互嵌套的,如下,小美表白的案例可以改为:
需要注意缩进,嵌套for循环同样通过缩进确定层次关系
for循环和while循环可以相互嵌套使用
通过for循环,也可以输出如下九九乘法表内容:

代码实现:
# 通过外层循环控制行数
for i in range(1, 10):# 通过内层循环控制每一行的数据for z in range(1, i + 1):# 在内存循环输出每一行的内容print(f"{z} * {i} = {z * i }\t", end='')# 外层循环通过print输出一个回车符print()
运行效果不再展示,可自行尝试
循环中断 : break和continue
break
break关键字用于:直接结束所在循环
break可以用于: for循环和while循环,效果一致
通过代码来模拟一下追求小美的过程。(以for循环为例,while循环效果一样)
通过input输入语句,来决定今天小美的心情(0表示好心情,1表示坏心情)

break关键字同样只可以控制:它所在的循环永久中断

break只能控制上图内循环,对外部循环,无影响
continue
continue关键字用于:中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
通过代码来模拟一下追求小美的过程。(以for循环为例,while循环效果一样)
通过input输入语句,来决定今天小美的心情(0表示好心情,1表示坏心情)
continue关键字只可以控制:它所在的循环临时中断

continue只能控制上图编号1的for循环,对编号2的for循环,无影响
相关文章:
Python之循环语句
循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。 循环在程序中同判断一样,也是广泛存在的,是非常多功能实现的基础 while循环的基础语法 生活中的循环 程序中的循环 只要条件满足 会无限循…...
python中使用websocket调用、获取、保存大模型API
笔者最近在测试星火大模型的时候,他们是使用websocket 来建立对话,而且星火大模型开放的测试代码,质量上不咋地(20231030记录),还需要对websocket有一定的了解,才适合自己微调。 安装ÿ…...
Linux的账号管理
本章的学习感觉如果不做系统管理员,作为简单了解就可以了 前面介绍了,用户,组,other三个角色, 每个用户创建都会有uid与之对应,创建的用户基本信息在一下两个文件中,也是我们要介绍的内容&…...
优优嗨聚集团:医保新政来袭,乙类OTC、保健品或将退出医保舞台,影响几何?
近日,国家医保局发布征求意见稿,拟将乙类OTC(非处方药)和保健品从医保目录中移除。这一政策一旦实施,无疑将对广大参保人员和相关企业产生深远影响。本文将为您详细解析这一政策可能带来的影响,以及如何应对…...
ubuntu安装pandora-gpt
因为pandora要3.7以上的版本,推荐MINICANDA, 1,在清华镜像网站上下载miniconda3安装的脚本文件 sudo wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh2,给.sh文件添加x执…...
PHP校验身份证号是否正确
用PHP语言实现校验身份证号的算法,供参考 /*** 校验身份证号是否正确* param $idcard 身份证号* return bool true正确*/public static function validateIDCard($idcard) {if(empty($idcard)){return false;}if (!preg_match(/(^\d{15}$)|(^\d{17}([0-9]|X|x)$)/,$…...
[C++ ]:5.类和对象中(运算符重载补充)+ 类和对象下(初始化列表)
类和对象中(运算符重载补充) 类和对象下(初始化列表) 一.运算符重载补充:1.流插入运算符:1.考虑到隐含的参数指针:2.进行优化!2-1:解决办法:友元2-2ÿ…...
D. Doremy‘s Connecting Plan Codeforces Round 906 (Div. 2)
Problem - D - Codeforces 题目大意:有一个长度为n的数组a,同时有一个n个点的图,编号与数组的编号对应,初始没有边,如果当前连通块的中a[i]的和某一个点a[j]>连通块的一个点i*某一个点j*c,那么就可以连…...
Prometheus+Grafana
一、Prometheus 获取配置文件 docker run -d -p 9090:9090 --name prometheus prom/prometheusmkdir -p /app/prometheusdocker cp prometheus:/etc/prometheus/prometheus.yml /app/prometheus/prometheus.yml停止并删除旧的容器,重新启动 docker run -d --name…...
CoCa论文笔记
摘要 计算机视觉任务中,探索大规模预训练基础模型具有重要意义,因为这些模型可以可以极快地迁移到下游任务中。本文提出的CoCa(Contrastive Captioner),一个极简设计,结合对比损失和captioning损失预训练一…...
uniapp 微信小程ios端键盘弹起后导致页面无法滚动
项目业务逻辑和出现的问题整理 新增页面 用户可以主动添加输入文本框 添加多了就会导致当前页面出现滚动条,这就导致ios端滚动页面的时候去点击输入框键盘抬起再关闭的时候去滚动页面发现页面滚动不了(偶尔出现),经过多次测试发现是键盘抬起的时候 主动向上滑动 100%出现这种问…...
三维模型优势在哪里?如何提升产品自身商业价值?
不少企业、商家都开始使用VR全景展示来宣传推广自己的产品、活动等,虽说VR全景的沉浸式体验,相比于图片、视频而言有着无法取代的优势,但是也不能忘了VR全景另一个大优势,那就是丰富多样的互动性。3D模型展示让产品展示和体验不再…...
WheatA 轻量级生态数据软件
无论是在工作还是上学期间,大家想要做一个科研项目或者市场调查时,往往需要大量的数据用于分析总结,这时获得优质的数据就显得额外重要,数据的优劣往往决定了项目结果的好坏。数据来源的主要渠道主要有两种:无非是去数…...
2127. 参加会议的最多员工数 : 啥是内向/外向基环树(拓扑排序)
题目描述 这是 LeetCode 上的 「2127. 参加会议的最多员工数」 ,难度为 「困难」。 Tag : 「拓扑排序」、「内向基环树」、「图」 一个公司准备组织一场会议,邀请名单上有 n 位员工。 公司准备了一张圆形的桌子,可以坐下任意数目的员工。 员工…...
Qt入门日记1
目录 1.Qt简介和案例 2.第一个Qt程序 3.学会查看帮助文档 4.创建一个按钮 5.对象树简介 6.Qt的坐标系 7. 信号和槽 7.1自定义信号和槽 7.2信号连接信号 7.3拓展 7.4Qt4版本以前的connect 1.Qt简介和案例 Qt是一个跨平台的C图形用户界面应用程序框架(就是一个库吧…...
SpringBoot_第七章(读写分离)
这里列举了三种读写分离实现方案,分别是如下三种 1:MybatisPlus(读写分离) 1.1:首先创建三个数据库1主2从 表名是user表 1.2:代码实例 1:导入pom <!--MybatisPlus的jar 3.0基于jdk8--><depend…...
linux下mysql-8.2.0集群部署(python版本要在2.7以上)
目录 一、三台主机准备工作 1、mysql官方下载地址:https://dev.mysql.com/downloads/ 2、修改/etc/hosts 3、关闭防火墙 二、三台主机安装mysql-8.2.0 1、解压 2、下载相应配置 3、初始化mysql,启动myslq,设置开机自启 4、查看初始密…...
40 深度学习(四):卷积神经网络|深度可分离卷积|colab和kaggle的基础使用
文章目录 卷积神经网络为什么要卷积卷积的具体流程池化tensorflow代码 深度可分离卷积原理介绍计算量对比代码参数计算例子 colab 和 kagglecolabkaggle如何在colab上使用kaggle的数据 卷积神经网络 卷积神经网络的基本结构 1: (卷积层(可选)池化层) * N全连接层 *…...
Spring Boot面向切面加注解
一.项目pom.xml文件引入切面依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>二.定义注解类 import java.lang.annotation.*;/*** desc 错误日志注解* au…...
uniapp小程序授权统一处理
1.使用 1.将工具代码引入到utils中 const authorize (scope, isOne false, isMust false) > {if (!scope || !authorizeObj[scope]) {return console.error(请传输需要获取权限的 scope,详见,https://uniapp.dcloud.net.cn/api/other/authorize.html#scope-…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
[特殊字符] 智能合约中的数据是如何在区块链中保持一致的?
🧠 智能合约中的数据是如何在区块链中保持一致的? 为什么所有区块链节点都能得出相同结果?合约调用这么复杂,状态真能保持一致吗?本篇带你从底层视角理解“状态一致性”的真相。 一、智能合约的数据存储在哪里…...
《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》
引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
《Playwright:微软的自动化测试工具详解》
Playwright 简介:声明内容来自网络,将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具,支持 Chrome、Firefox、Safari 等主流浏览器,提供多语言 API(Python、JavaScript、Java、.NET)。它的特点包括&a…...
在WSL2的Ubuntu镜像中安装Docker
Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...
大数据学习(132)-HIve数据分析
🍋🍋大数据学习🍋🍋 🔥系列专栏: 👑哲学语录: 用力所能及,改变世界。 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言Ǵ…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...





