Python-第四天 Python循环语句
Python-第四天 Python循环语句
- 一、while循环
- 1.while循环的基础语法
- 2.while循环的基础案例
- 3.while循环的嵌套应用
- 4.while循环的嵌套案例
- 二、for循环
- 1.for循环的基础语法
- 1.1基础语法
- 1.2 range语句
- 2.for循环的嵌套应用
- 三、循环中断 : break和continue
- 1.continue
- 2.break
- 四、 综合案例
一、while循环
1.while循环的基础语法
while 条件:条件满足时,做的事件1条件满足时,做的事件2条件满足时,做的事件3.....
只要条件满足,会无限循环执行
i = 0
while i < 100:print("小美,我喜欢你")i += 1
- while的条件需得到布尔类型,True表示继续循环,False表示结束循环
- 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
- 空格缩进和if判断一样,都需要设置
练习案例:求1-100的和
需求:通过while循环,计算从1累加到100的和
提示:
- 终止条件不要忘记,设置为确保while循环100次
- 确保累加的数字,从1开始,到100结束
i = 0
sum = 0
while i <= 100:sum += ii+=1
print(sum)
2.while循环的基础案例
猜数字案例
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
- 无限次机会,直到猜中为止
- 每一次猜不中,会提示大了或小了
- 猜完数字后,提示猜了几次
提示:
- 无限次机会,终止条件不适合用数字累加来判断,可以考虑布尔类型本身(True or False)
- 需要提示几次猜中,就需要提供数字累加功能
- 随机数可以使用:
import random
num = random.randint(1,100)

import random
num = random.randint(1,100) #获得随机整数flag = True #设置循环
count = 0 #猜了几次while flag:guess_num = int(input('请输入数字猜大小:')) # 获取输入数字count += 1 #每输入一次就猜了一次if guess_num == num:flag = False #猜对了就结束循环else: #猜错了,要么大,要么小if guess_num > num:print('大了')else:print('小了')#结束循环后输出猜的数字和次数
print(f'猜了{count}次,猜对了底数是:{num}')
3.while循环的嵌套应用
语法
while 条件1:条件1满足时,做的事件1条件1满足时,做的事件2条件1满足时,做的事件3.....while 条件2:条件2满足时,做的事件1条件2满足时,做的事件2条件2满足时,做的事件3.....
i= 1
while i <=100:print(f'今天是第{i}天,准备表白......')j = 1while j<=10:print(f'送给小美第{j}只玫瑰花')j+=1print('小美,我喜欢你')i+=1print(f'坚持到第{i-1}天,表白成功')
- 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
- 基于空格缩进来决定层次关系
- 注意条件的设置,避免出现无限循环(除非真的需要无限循环)
4.while循环的嵌套案例
案例:掌握使用while嵌套循环,打印九九乘法表
补充知识:
1.print输出不换行 在print语句中,加上 end=’’ 即可输出不换行了
print(‘Hello’,end=‘’)
print(‘World’,end=‘’)

2.通过制表符,让多行字符串对齐。
在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。
它可以让我们的多行字符串进行对齐。
print('Hello World')
print('ithema best' )print('Hello\tWorld')
print('ithema\tbest' )

有了以上知识,就能打印九九乘法表了
i = 1
while i <=9:j=1while j <=i:print(f'{j} * {i} = {i*j}\t',end='')j +=1i +=1print()

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


for 临时变量 in 待处理数据集: 循环满足条件时执行的代码
从待处理数据集中:逐个取出数据
赋值给临时变量
# 定义字符串name
name = 'itheima'
# for循环处理字符串
for x in name:print(x)

可以看出,for循环是将字符串的内容:依次取出
所以,for循环也被称之为:遍历循环
- 同while循环不同,for循环是无法定义循环条件的。
- 只能从被处理的数据集中,依次取出内容进行处理。
- 所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
练习案例:数一数有几个a
定义字符串变量name,内容为:“itheima is a brand of itcast”
通过for循环,遍历此字符串,统计有多少个英文字母:“a”
提示:
- 计数可以在循环外定义一个整数类型变量用来做累加计数
- 判断是否为字母"a",可以通过if语句结合比较运算符来完成
str = 'itheima is a brand of itcast'
count = 0
for i in str:if i == 'a':count +=1
print(f'{str}中有共含有:{count}个字母a')

1.2 range语句
for 临时变量 in 待处理数据集(可迭代对象): 循环满足条件时执行的代码
语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:
- 字符串
- 列表
- 元组
- 等
目前我们只学习了字符串类型,其余类型在后续章节会详细学习它们
range语句语法
#语法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]
例如:for循环遍历range序列
# for循环处理字符串
for i in range(5): print(i)
结果如下

练习案例:有几个偶数
定义一个数字变量num,内容随意,并使用range()语句,获取从1到num的序列,使用for循环遍历它。在遍历的过程中,统计有多少偶数出现
提示:
- 序列可以使用:range(1, num)得到
- 偶数通过if来判断,判断数字余2是否为0即可
num = 100
count = 0
for i in range(1,100):if i % 2 == 0:count+=1
print(f'1到{num}(不含{num}本身)范围内,有{count}个偶数')

2.for循环的嵌套应用
同while一样,for循环也支持嵌套使用
语法
for 临时变量 in 待处理数据集(序列):循环条件满足应做的事件1循环条件满足应做的事件2循环条件满足应做的事件N...for 临时变量 in 待处理数据集(序列):循环条件满足应做的事件1循环条件满足应做的事件2循环条件满足应做的事件N...
我们目前学习了2个循环,while循环和for循环。
这两类循环语句是可以相互嵌套的。
练习案例-for循环打印九九乘法表
通过for循环,输出如下九九乘法表内容
提示:
- 2层循环,外层控制行,内层控制列
- 可使用range语句来得到数字序列进行for循环
- 内层for循环的range最大范围,取决于当前外层循环的数字
for i in range(1,10):for j in range(1,i+1):print(f'{j} * {i} = {i*j}\t',end='')print()

三、循环中断 : break和continue
Python提供continue和break关键字
用以对循环进行临时跳过和直接结束
1.continue
continue关键字用于:中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
continue关键字只可以控制:它所在的循环临时中断

continue只能控制左图编号1的for循环
对编号2的for循环,无影响
2.break
break关键字用于:直接结束所在循环
break可以用于: for循环和while循环,效果一致
break关键字同样只可以控制:它所在的循环永久中断

reak只能控制左图编号1的循环
对编号2的循环,无影响
四、 综合案例
练习案例:发工资
某公司,账户余额有1W元,给20名员工发工资。
- 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
- 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
- 如果工资发完了,结束发工资。
提示: - continue用于跳过员工,break直接结束发工资
- if判断余额,不要忘记发完工资后,余额减少1000哦
import random
money = 10000 #总钱数
employee_num=1 #员工编号for employee_num in range(1,21):performance = random.randint(1, 10) # 绩效if performance < 5:print(f'员工{employee_num},绩效分{performance},低于5,不发工资,下一位')continueif money == 0:print('工资发完了,下个月领吧')breakmoney -= 1000print(f'向员工{employee_num}发放工资1000元,账户余额还剩{money}元')

相关文章:
Python-第四天 Python循环语句
Python-第四天 Python循环语句一、while循环1.while循环的基础语法2.while循环的基础案例3.while循环的嵌套应用4.while循环的嵌套案例二、for循环1.for循环的基础语法1.1基础语法1.2 range语句2.for循环的嵌套应用三、循环中断 : break和continue1.continue2.break四、 综合案…...
spring中bean的生命周期(简单5步)
目录 一、概念 1.生命是bean的生命周期? 2.知道bean生命周期的意义? 3.bean的生命周期按照粗略的五步 二、例子讲解 一、概念 1.生命是bean的生命周期? 答:spring其实就是管理bean对象的工厂,它负责对象的创建&…...
10 个最难理解的 Python 概念
文章目录技术提升面向对象编程 (OOP)装饰器生成器多线程异常处理正则表达式异步/等待函数式编程元编程网络编程大家好,与其他编程语言相比,Python 是一门相对简单的编程语言,如果你想真正学透这门语言,其实可能并不容易。 今天我…...
【linux】线程概念
概念 什么是线程 在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程,线程在进程内部运行,本质是在进程地址空间内运行 在Linux系统中&a…...
Leg转Goh引擎和架设单机+配置登陆器教程
教程准备1、Leg版本一个2、Goh引擎一套3、电脑一台(最好联网)前言:BLUE/LEGS/Gob/Goh/九龍、4K、AspM2第一步:更换引擎1、把版本自带的LEG引擎换成Goh引擎2、删除服务端里面的exe、dll文件(也可以直接更新)3、清理登录和游戏网关里面的配置文件4、更新引…...
idea整合svn
idea整合svn svn下载 链接:https://pan.baidu.com/s/1yS3R3lEE8lm9c9Ap-ndDKg 提取码:65ur 基础步骤 IDED中配置SVN没有svn.exe解决办法 以下是两种解决方案 需要卸载原 svn(不推荐) 参考网址: https://blog.csdn.…...
字节青训前端笔记 | 数据可视化基础
本课程主要内容可以分为三个章节: 数据可视化的基本概念可视化设计的基本原则面向前端的可视化工具 本手册可以作为学生学习数据可视化的“学习指南”,按照手册所列内容,结合扩展资料进行系统的学习和实践。本课程没有讨论更为前沿的可视化…...
ROS运行机C++程序,移动
流程: 1.创建工作空间 mkdir catkin_ws cd catkin_ws mkdir src cd src catkin_init_workspace 2编译工作空间 cd ~/catkin_ws/ catkin_make catkin_make install 首先对ROS进行创建一个元功能包 3.设置环境变量 source devel/setup.bash source devel/setup.b…...
C++中编译静态库与动态库
1.库的理解库就是写好的现有的,成熟的,可复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式,是预编译代码的集…...
shell中sed命令用法
一、sed命令解析 1、sed工具概述 Stream EDitor,流式编辑器 - 非交互,基于模式匹配过滤及修改文本 - 逐行处理,并将结果输出到屏幕 - 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等操作 2、命令格式解析 主要用法: …...
【VictoriaMetrics】VictoriaMetrics启停脚本
先看结果,启动VictoriaMetrics UI界面可访问...
高性能网络SIG月度动态:SMC 与 IBM 就扩展协议达成一致,virtio 支持 XDP 新特性
高性能网络 SIG(Special Interest Group) :在云计算时代,软硬件高速发展,云原生、微服务等新的应用形态兴起,让更多的数据在进程之间流动,而网络则成为了这些数据流的载体,在整个云时…...
【正点原子FPGA连载】第七章程序固化实验摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
第七章程序固化实验 在前面的几个实验中,我们都是通过JTAG接口将FPGA配置文件和应用程序下载到MPSOC器件中。接下来我们将尝试把程序存储在非易失性存储器中,在上电或者复位时让程序自动运行,这个过程需要启动引导程序(Boot Load…...
LeetCode-2335. 装满杯子需要的最短总时长【贪心,数学】
LeetCode-2335. 装满杯子需要的最短总时长【贪心,数学】题目描述:解题思路一:其实像一道数学题目。假设三个杯子x<y<z先分两种情况。第一种:xy<z,答案直接是最大的z。第二种:xy>z。先将x与y互相…...
基于 oss 框架的音频驱动
基于 oss 框架完成系统平台音频驱动的适配。 oss 框架可被多个平台应用,因此 oss 提供 OS 目录来存放平台文件(比如:linux.c),该文件主要提供平台对 oss 框架封装后的相关接口。 以 Linux 为例,入口接口为…...
【golang】如何定制化zap日志库以及如何使用
Zap 日志 前言 本文主要介绍Go语言日志库如何简易定制化,以及如何在开发中使用。 为什么需要日志? 一个产品的诞生一定是因为有需求!新技术大部分都是为了更加便利和实用而诞生的,日志也不例外。日志顾名思义就是对整个项目的事件进行记…...
如何将 Ubuntu 升级到 22.04 LTS Jammy Jellyfish
在本教程中,我们将详细介绍如何将你的 Ubuntu 系统升级到版本 22.04 Jammy Jellyfish,这是最新的长期支持版本。 Ubuntu 22.04 LTS Jammy Jellyfish 将于 2022 年 4 月 21 日发布。它是下个两年一次的长期支持(LTS)版本,因此值得注意,而且现在 Ubuntu 21.10 的用户可以升…...
ubuntu20.04安装docker与docker-compose
安装docker 查看系统发行版本 cat /proc/version1、更新apt包 sudo apt-get update2、安装必备的软件包以允许apt通过 HTTPS 使用存储库(repository): sudo apt-get install ca-certificates curl gnupg lsb-release3、添加Docker官方版本…...
笔试题-2023-加特兰-数字IC设计【纯净题目版】
回到首页:2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录 推荐内容:数字IC设计学习比较实用的资料推荐 题目背景 笔试时间:2022.07.27应聘岗位:数字电路设计工程师(SoC) - 2023届笔试时长:90min笔试平台:nowcoder牛客网题目类型:问答题(11道)主观评价 难易…...
动态内存管理
目录1.为什么要动态内存分配2.动态内存函数malloc](https://cplusplus.com/reference/cstdlib/malloc/?kwmalloc)和[freecallocrealloc3.使用动态内存要注意的几点对NULL的解引用对同一块动态内存多次释放free非动态开辟的内存使用free释放一块动态开辟内存的一部分一个函数中…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...
