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

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
  1. while的条件需得到布尔类型,True表示继续循环,False表示结束循环
  2. 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环
  3. 空格缩进和if判断一样,都需要设置

练习案例:求1-100的和
需求:通过while循环,计算从1累加到100的和
提示:

  1. 终止条件不要忘记,设置为确保while循环100次
  2. 确保累加的数字,从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”
提示

  1. 计数可以在循环外定义一个整数类型变量用来做累加计数
  2. 判断是否为字母"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循环遍历它。在遍历的过程中,统计有多少偶数出现
提示

  1. 序列可以使用:range(1, num)得到
  2. 偶数通过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提供continuebreak关键字

用以对循环进行临时跳过直接结束

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的生命周期&#xff1f; 2.知道bean生命周期的意义&#xff1f; 3.bean的生命周期按照粗略的五步 二、例子讲解 一、概念 1.生命是bean的生命周期&#xff1f; 答&#xff1a;spring其实就是管理bean对象的工厂&#xff0c;它负责对象的创建&…...

10 个最难理解的 Python 概念

文章目录技术提升面向对象编程 (OOP)装饰器生成器多线程异常处理正则表达式异步/等待函数式编程元编程网络编程大家好&#xff0c;与其他编程语言相比&#xff0c;Python 是一门相对简单的编程语言&#xff0c;如果你想真正学透这门语言&#xff0c;其实可能并不容易。 今天我…...

【linux】线程概念

概念 什么是线程 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控制序列” 一切进程至少都有一个执行线程&#xff0c;线程在进程内部运行&#xff0c;本质是在进程地址空间内运行 在Linux系统中&a…...

Leg转Goh引擎和架设单机+配置登陆器教程

教程准备1、Leg版本一个2、Goh引擎一套3、电脑一台(最好联网)前言&#xff1a;BLUE/LEGS/Gob/Goh/九龍、4K、AspM2第一步&#xff1a;更换引擎1、把版本自带的LEG引擎换成Goh引擎2、删除服务端里面的exe、dll文件(也可以直接更新)3、清理登录和游戏网关里面的配置文件4、更新引…...

idea整合svn

idea整合svn svn下载 链接&#xff1a;https://pan.baidu.com/s/1yS3R3lEE8lm9c9Ap-ndDKg 提取码&#xff1a;65ur 基础步骤 IDED中配置SVN没有svn.exe解决办法 以下是两种解决方案 需要卸载原 svn&#xff08;不推荐&#xff09; 参考网址&#xff1a; https://blog.csdn.…...

字节青训前端笔记 | 数据可视化基础

本课程主要内容可以分为三个章节&#xff1a; 数据可视化的基本概念可视化设计的基本原则面向前端的可视化工具 本手册可以作为学生学习数据可视化的“学习指南”&#xff0c;按照手册所列内容&#xff0c;结合扩展资料进行系统的学习和实践。本课程没有讨论更为前沿的可视化…...

ROS运行机C++程序,移动

流程&#xff1a; 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.库的理解库就是写好的现有的&#xff0c;成熟的&#xff0c;可复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。本质上来说库是一种可执行代码的二进制形式&#xff0c;是预编译代码的集…...

shell中sed命令用法

一、sed命令解析 1、sed工具概述 Stream EDitor&#xff0c;流式编辑器 - 非交互&#xff0c;基于模式匹配过滤及修改文本 - 逐行处理&#xff0c;并将结果输出到屏幕 - 可实现对文本的输出、删除、替换、复制、剪切、导入、导出等操作 2、命令格式解析 主要用法&#xff1a; …...

【VictoriaMetrics】VictoriaMetrics启停脚本

先看结果,启动VictoriaMetrics UI界面可访问...

高性能网络SIG月度动态:SMC 与 IBM 就扩展协议达成一致,virtio 支持 XDP 新特性

高性能网络 SIG&#xff08;Special Interest Group&#xff09; &#xff1a;在云计算时代&#xff0c;软硬件高速发展&#xff0c;云原生、微服务等新的应用形态兴起&#xff0c;让更多的数据在进程之间流动&#xff0c;而网络则成为了这些数据流的载体&#xff0c;在整个云时…...

【正点原子FPGA连载】第七章程序固化实验摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

第七章程序固化实验 在前面的几个实验中&#xff0c;我们都是通过JTAG接口将FPGA配置文件和应用程序下载到MPSOC器件中。接下来我们将尝试把程序存储在非易失性存储器中&#xff0c;在上电或者复位时让程序自动运行&#xff0c;这个过程需要启动引导程序&#xff08;Boot Load…...

LeetCode-2335. 装满杯子需要的最短总时长【贪心,数学】

LeetCode-2335. 装满杯子需要的最短总时长【贪心&#xff0c;数学】题目描述&#xff1a;解题思路一&#xff1a;其实像一道数学题目。假设三个杯子x<y<z先分两种情况。第一种&#xff1a;xy<z&#xff0c;答案直接是最大的z。第二种&#xff1a;xy>z。先将x与y互相…...

基于 oss 框架的音频驱动

基于 oss 框架完成系统平台音频驱动的适配。 oss 框架可被多个平台应用&#xff0c;因此 oss 提供 OS 目录来存放平台文件&#xff08;比如&#xff1a;linux.c&#xff09;&#xff0c;该文件主要提供平台对 oss 框架封装后的相关接口。 以 Linux 为例&#xff0c;入口接口为…...

【golang】如何定制化zap日志库以及如何使用

Zap 日志 前言 本文主要介绍Go语言日志库如何简易定制化&#xff0c;以及如何在开发中使用。 为什么需要日志? 一个产品的诞生一定是因为有需求&#xff01;新技术大部分都是为了更加便利和实用而诞生的&#xff0c;日志也不例外。日志顾名思义就是对整个项目的事件进行记…...

如何将 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 使用存储库&#xff08;repository&#xff09;&#xff1a; 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释放一块动态开辟内存的一部分一个函数中…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

是否存在路径(FIFOBB算法)

题目描述 一个具有 n 个顶点e条边的无向图&#xff0c;该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序&#xff0c;确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数&#xff0c;分别表示n 和 e 的值&#xff08;1…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

ubuntu22.04 安装docker 和docker-compose

首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...