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

python从入门到精通:循环语句

目录

前言

 1、while循环的基础语法

2、while循环的嵌套

3、for循环的基础语法

range语句:

 for循环临时变量作用域:

4、for循环的嵌套

5、循环中断:break和continue



前言

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

 1、while循环的基础语法

程序中的循环:

while 条件:#(布尔类型)

        执行内容

# while的简单演示
i = 0;
while i<100:print("hello word!")i += 1;

 1、while的条件需要得到布尔类型,True表示继续循环,False表示结束循环

2、、需要设置循环终止的条件,如i +=1 配合 i < 100 ,就能确保100次后停止,否则将无限循环

3、空格缩进和if判断一样,都需要设置

# 案例:计算从1累加到100的和
i = 1;
sum = 0;
while i <= 100:sum += i;i += 1;
print("累加的和为:%s" % sum)

在判断语句中我们写了猜数字的游戏,但代码较为冗杂,现在我们就来优化这个代码。

# 设置一个范围在1~100之间的随机数字:无限次机会,会提示猜的大了还是小了,猜中会提示猜了几次
import random
num =random.randint(1, 100)
count = 0;
flag = True
while flag:guess_num = int(input("请输入您要猜的数字:"));count += 1;if guess_num == num:print("恭喜您!猜中了")flag = Falseelse:if guess_num > num:print("猜大了")else:print("猜小了")
print(f"您一共猜了{count}次")

2、while循环的嵌套

程序中的循环:

while 条件1:

        执行内容

        while 条件:

                执行内容

# while循环的嵌套案例:求1到100的阶乘之和
i = 1;
sum = 0;
fact = 1;
j = 1;
while i <= 100:while j <= i:fact = fact * jj += 1sum = sum + fact;i += 1;
print(sum)

1、同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。(基于空格缩进来确定层次关系)

2、注意条件的设置,避免出现无限循环

# 案例:九九乘法表的打印
i = 1;
while i <= 9:j = 1 ;while j <= i:# 内层循环的print语句,不换行,通过\t制表符进行对齐print(f"{i}*{j}={i*j}\t",end='')j += 1;i += 1;print()

3、for循环的基础语法

除了while循环语句外,python同样提供了for循环语句。两者功能类似,但也有区别:

· while循环的循环条件是自定义的,自行控制循环条件

· for循环是一种“轮询”机制,是对一批内容进行“逐个处理”

程序中的for循环:

for 临时变量 in 待处理数据集:

        循环满足条件时执行的代码 

name = "zhangsan";
for x in name:# 将name内容,挨个取出赋予x临时变量print(x, end='')

可以看出,for循环是将字符串的内容:依次取出,所以,for循环也称之为遍历循环。

同while循环不同,for循环无法定义循环条件,只能从被处理的数据集中,依次对内容进行处理。

# 统计字符串“abcdefaac”中字符a的个数
num_a = "abcdefaac"
count = 0;
for x in num_a:# 依次取出字符if x == 'a':count += 1;
print(count)

range语句:

for循环中的待处理数据集,严格意义来说称之为序列类型,序列类型指,其内容可以一个个一次取出来的一种类型,包括:字符串、列表、元组等。

 语法1:

range(num)

# 获取一个从0开始到num结束的数字序列(不含num本身)

# 如range(5)取得的数据是:[0,1,2,3,4]

 语法2:

range(num1,num2)

# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)

# 如range(5,10)取得的数据是:[5,6,7,8,9]

语法3:

range(num1,num2,step)

# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)

# 数字之间的步长,以step为准(step默认为1)

# 如range(5,10,2)取得的数据是:[5,7,9] 

# 统计偶数的数量
num = int(input("请输入数字:"))
count = 0;
for x in range(1,num):if x %2 == 0:count += 1;
print(count)

 for循环临时变量作用域:

for x in range(5):print(x)
print(x)
# 最后一行代码在规范上是不能运行的,但实际上是可以运行的,x属于临时变量

临时变量,在编程规范上,作用域,只限定在for循环内部。但外部进行访问实际上也是可以反问道的,但规范上不允许。

如果需要访问临时变量,可以预先在循环外定义它。 

4、for循环的嵌套

程序中的嵌套for循环:

for 临时变量 in 待处理数据集:

        循环满足条件时执行的代码

        ......

        for 临时变量 in 待处理数据集:

                循环满足条件时执行的代码

# for循环的嵌套实现九九乘法表
i = 1;
j = 1;
for i in range(1,10):for j in range(1,i+1):print(f"{i}*{j}={i*j}\t",end='')print()

5、循环中断:break和continue

无论是while循环还是for循环,都是重复性的执行特定操作。在这个重复的过程中,会出现一些情况:

· 暂时跳过某次循环,直接进行下一次(continue)

· 提前退出循环,不再继续(break)

continue用于中断本次循环,直接进行下一次循环,可以用于for循环和while循环。

for i in range(1,100):

        语句1

        continue

        语句2 

在循环中,遇到continue就结束当次循环,进行下一次,所以本次语句2不执行。

break用于直接结束循环,可以用于for循环和while循环。

for i in range(1,100):

        语句1

        break

        语句2 

 语句3

在循环内,遇到break就结束循环了,所以执行语句1后,直接执行语句3。

# 发工资案例:员工编号1到20,账户余额1w,每人可领取1000,领工资时如果绩效分(1-10)(随机生成)低于5,不发工资,直接下一位
money = 10000
for num in range(1,21):# 每次循环产生一个随机数字import randomgrade = random.randint(1, 10)if grade < 5:print(f"员工{num}绩效分低于5,不发工资,直接下一位")continueif money >= 1000:money -= 1000;print(f"员工{num}满足发工资条件,公司余额:{money}")else:print(f"公司余额不足,余额:{money},请下个月再来")break

相关文章:

python从入门到精通:循环语句

目录 前言 1、while循环的基础语法 2、while循环的嵌套 3、for循环的基础语法 range语句&#xff1a; for循环临时变量作用域&#xff1a; 4、for循环的嵌套 5、循环中断&#xff1a;break和continue 前言 循环普遍存在于日常生活中&#xff0c;同样&#xff0c;在程序中…...

Codeforces Round 965 (Div. 2)

前言 有人在过七夕&#xff0c;我在打 cf &#xff0c;还有某人独自一人在学校机房&#xff0c;凌晨一点骑上共享单车回宿舍欣赏沿途的秋风扫落叶。 Standings&#xff1a;2166 题目链接&#xff1a;Dashboard - Codeforces Round 965 (Div. 2) - Codeforces A. Find K Distin…...

Win10下载安装Mysql服务

Win10下载安装MySQL 一、官网下载MySQL 1.官网地址&#xff1a; https://www.mysql.com/ 2.在官网首页拉到最下方&#xff0c;点击MySQL Community Server&#xff1a; 3.根据个人电脑的操作系统选择&#xff0c;此处以Windows x64为例&#xff0c;选择第2个&#xff0c;点击…...

MVVM(Model-View-ViewModel)架构模式

在Android开发中&#xff0c;MVVM&#xff08;Model-View-ViewModel&#xff09;架构模式已经成为构建可维护和可扩展应用程序的重要选择。MVVM模式通过分离视图&#xff08;View&#xff09;、模型&#xff08;Model&#xff09;和视图模型&#xff08;ViewModel&#xff09;来…...

C#MVC返回DataTable到前端展示。

很久没写博客了&#xff0c;闭关太久&#xff0c;失踪人口回归&#xff0c;给诸位道友整点绝活。 交代下背景&#xff1a;要做一个行转列的汇总统计&#xff0c;而且&#xff0c;由于是行转列&#xff0c;列的数量不固定&#xff0c;所以&#xff0c;没法使用正常的SqlSugar框…...

HttpUtils工具类(二)Apache HttpClient 5 使用详细教程

目录 一、Apache HttpClient 5介绍 &#xff08;1&#xff09;核心特性 &#xff08;2&#xff09;Apache HttpClient 5 的新特性 &#xff08;3&#xff09;在 Java 项目的主要使用场景及缺点 使用场景&#xff1a; 缺点&#xff1a; 二、在实际项目中的应用 &#xf…...

Vue3.0生命周期钩子(包含:Vue 2.0 和 Vue 3.0)

1、Vue 2.0 生命周期钩子 每个应用程序实例在创建时都有一系列的初始化步骤。例如&#xff0c;创建数据绑定、编译模板、将实例挂载到 DOM 并在数据变化时触发 DOM 更新、销毁实例等。在这个过程中会运行一些叫做生命周期钩子的函数&#xff0c;通过这些钩子函数可以定义业务逻…...

遥感之常用各种指数总结大全

目前在遥感领域基本各种研究领域都会用到各种各样的指数&#xff0c;如水体指数&#xff0c;植被指数&#xff0c;农业长势指数&#xff0c;盐分指数&#xff0c;云指数&#xff0c;阴影指数&#xff0c;建筑物指数&#xff0c;水质指数&#xff0c;干旱指数等等众多。 本文对上…...

【C++】C++11新增特性

目录 C11简介&#xff1a; 1、统一的列表初始化&#xff1a; std::initializer_list 2、自动类型推导&#xff1a; auto&#xff1a; decltype&#xff1a; 3、final 和 override final&#xff1a; override&#xff1a; 4、默认成员函数控制&#xff1a; 显示缺省…...

【LeetCode每日一题】——662.二叉树最大宽度

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 中等 三【题目编号】 662.二叉树最大宽度 四【题目描述】 给…...

第二十三节、血量更新逻辑的实现

一、创建代码 引入命名空间 using UnityEngine.UI; 调用UI必须有这个代码 二、ScriptObject类 1、是一个持久化存储文件的类型 接收所有的事件方法 先继承SO类&#xff0c;然后创建项目菜单 2、进行订阅 放入事件类&#xff0c;关联代码&#xff0c;即可进行广播 传递给这…...

Spring Authorization Server 认证服务器搭建

Spring Authorization Server实现了oauth2和oidc,最近有了解相关技术的需求,所以就尝试着进行了基本的环境搭建和技术测试,目前只测试了授权码模式,做一个记录,后续需要用时方便查找和参考。 1. 版本要求 Spring Authorization Server 版本:1.3.1 JDK 版本:17 Spring B…...

秋招突击——8/15——知识补充——垃圾回收机制

文章目录 引言正文指针引用可达性分析算法垃圾回收算法标记清除算法标记整理算法复制分代收集 垃圾收集器Serial收集器ParNew并行收集器Parallel Scavenge吞吐量优先收集器Serial Old老年代收集器Parallel old收集器CMS收集器G1收集器&#xff08;Garbage First垃圾优先&#x…...

【iOS】UITableViewCell的重用问题解决方法

我自己在实验中对cell的重用总结如下&#xff1a; 非自定义Cell和非自定义cell的复用情况一样&#xff1a; 第一次加载创建tableView的时候&#xff0c;是屏幕上最多也显示几行cell就先创建几个cell&#xff0c;此时复用池里什么都没有开始下滑tableView&#xff0c;刚开始滑…...

开发一个微信小程序商城需要哪些技术栈

开发一个小程序商城需要掌握以下技术栈&#xff1a;‌ 前端技术&#xff1a;‌包括HTML、‌CSS和JavaScript&#xff0c;‌用于定义商城的页面结构、‌样式设计和交互功能。‌ 微信小程序专用技术&#xff1a;‌如WXML、‌WXSS、‌JavaScript和JSON&#xff0c;‌用于描述小程…...

望繁信科技荣膺上海市浦东新区博士后创新实践基地称号

近日&#xff0c;上海望繁信科技有限公司&#xff08;简称“望繁信科技”&#xff09;凭借在大数据流程智能领域的卓越表现&#xff0c;成功入选上海市浦东新区博士后创新实践基地。这一荣誉不仅是对望繁信科技创新能力和技术实力的高度认可&#xff0c;也标志着公司在推动产学…...

Nginx--代理与负载均衡(扩展nginx配置7层协议及4层协议方法、会话保持)

前言&#xff1a;本博客仅作记录学习使用&#xff0c;部分图片出自网络&#xff0c;如有侵犯您的权益&#xff0c;请联系删除 一、代理原理 1、反向代理产生的背景 单个服务器的处理客户端&#xff08;用户&#xff09;请求能力有一个极限&#xff0c;当接入请求过多时&#…...

Ubuntu20.4 系统安装后无wifi图标

0. 问题排查 1.检查 BIOS 设置: 有时候&#xff0c;无线网卡可能在 BIOS 中被禁用。重启电脑&#xff0c;进入 BIOS 设置&#xff0c;确保无线网卡选项是启用的。 2.检查硬件开关: 检查您的笔记本电脑是否有物理开关或键盘快捷键来启用或禁用无线网卡。 3.在软件更新中切换…...

牛客网SQL进阶135 :每个6/7级用户活跃情况

每个67级用户活跃情况_牛客题霸_牛客网 0 问题描述 基于用户信息表user_info、、试卷作答记录表exam_record、题目练习记录表practice_record&#xff0c;统计 每个6/7级用户总活跃月份数、2021年活跃天数、2021年试卷作答活跃天数、2021年答题活跃天数&#xff0c;结果 按照总…...

SQLite3使用接口写入二进制文件

使用接口的方式写入二进制文件 &#xff0c;有二种方案。 一、全部文件 一次性写下到数据中 使用sqlite3_bind_blob接口 FILE* fpfopen("user.bmp","rb"); iLenfread(buffer,1,65535,fp); fclose(fp);sqlite3_prepare(pDB,"insert into user values …...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...