Python-第四天 Python循环语句

news2024/12/23 6:33:37

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 += i
    i+=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 = 1
    while j<=10:
        print(f'送给小美第{j}只玫瑰花')
        j+=1
    print('小美,我喜欢你')
    i+=1

print(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=1
    while j <=i:
        print(f'{j} * {i} = {i*j}\t',end='')
        j +=1
    i +=1
    print()

在这里插入图片描述

二、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,不发工资,下一位')
        continue
    if money == 0:
        print('工资发完了,下个月领吧')
        break
    money -= 1000
    print(f'向员工{employee_num}发放工资1000元,账户余额还剩{money}元')

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/337514.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nginx相关反爬策略总结笔记

引言 互联网站点的流量一部分由人类正常访问行为产生&#xff0c;而高达30%-60%的流量则是由网络爬虫产生的&#xff0c;其中一部分包含友好网络爬虫&#xff0c;如搜索引擎的爬虫、广告程序、第三方合作伙伴程序、Robots协议友好程序等;而并非所有的网络爬虫都是友好的&#x…

【C#项目】图书馆管理系统-WinForm+MySQL

文章目录前言一、业务梳理与需求分析1.功能描述2.实现步骤3.功能逻辑图二、数据库设计1.实体-关系&#xff08;E-R图&#xff09;概念模型设计2.数据表设计三、WinForm界面交互设计1、界面交互逻辑2、项目树3、主界面登录界面4、 图书查询界面5、图书借阅界面6、图书插入界面7、…

pixhawk2.4.8-地面站配置-APM固件

目录一、硬件准备二、APM固件、MP地面站下载三、地面站配置1 刷固件2 机架选择3 加速度计校准4 指南针校准5 遥控器校准6 飞行模式7 紧急断电&无头模式8 基础参数设置9 电流计校准10 电调校准11 起飞前检查&#xff08;每一项都非常重要&#xff09;12 飞行经验四、遇到的问…

10.数据库恢复技术

其他章节here 梳理 名词解释 事务&#xff1a;事务是用户定义的 一个数据操作序列&#xff0c;这些操作要么全做&#xff0c;要么全不做&#xff0c;是一个不可分割的工作单位 事务≠程序 事务是恢复和并发控制的基本单位 &#xff08;事务时数据库应用程序的基本逻辑单元&am…

制造业升级转型:制造业上市公司-智能制造词频统计数据集

发展智能制造&#xff0c;关乎中国制造业转型升级的成效。基于中国制造业上市公司年报&#xff0c;通过文本数据挖掘&#xff0c;提取关键词反映企业对智能制造的关切焦点&#xff0c;进而运用词频及共词网络分析&#xff0c;洞察中国智能制造的发展态势。 研究发现&#xff0…

OpenAI最重要的模型【CLIP】

最近的 AI 突破 DALLE和 Stable Diffusion有什么共同点&#xff1f; 它们都使用 CLIP 架构的组件。 因此&#xff0c;如果你想掌握这些模型是如何工作的&#xff0c;了解 CLIP 是先决条件。 此外&#xff0c;CLIP 已被用于在 Unsplash 上索引照片。 但是 CLIP 做了什么&…

若依框架---为什么把添加和更新分成两个接口

&#x1f44f;作者简介&#xff1a;大家好&#xff0c;我是小童&#xff0c;Java开发工程师&#xff0c;CSDN博客博主&#xff0c;Java领域新星创作者 &#x1f4d5;系列专栏&#xff1a;前端、Java、Java中间件大全、微信小程序、微信支付、若依框架、Spring全家桶 &#x1f4…

SpringCloud-Netflix学习笔记11——Hystrix实现服务降级

服务降级 是什么&#xff1f; 整体资源快不够了&#xff0c;忍痛将某些服务先关掉&#xff0c;待渡过难关&#xff0c;再开启回来。 如下图&#xff0c;在某一个时间段&#xff0c;访问服务A的请求特别多&#xff0c;而访问服务B和服务C的请求特别少&#xff0c;这时我们可以把…

实战打靶集锦-004-My-Cmsms

**写在前面&#xff1a;**记录一次艰难曲折的打靶经历。 目录1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查4.1 WEB服务探查4.1.1 浏览器访问4.1.2 目录枚举4.1.3 控制台探查4.1.4 其他目录探查4.2 阶段小结5. 公共EXP搜索5.1 CMS搜索5.2 Apache搜索5.3 PHP搜索5.4 MySQL搜索5…

DaVinci:色度 - 亮度网格

调色页面&#xff1a;色彩扭曲器 Color&#xff1a;Color Warper相对于色相 - 饱和度网格&#xff0c;色度 - 亮度 Chroma - Luma网格在颜色的亮度控制上更加灵活。◆ ◆ ◆工作原理分析色度 - 亮度网格来自色彩空间三维模型中圆柱体垂直切分的两个 90 交叉的纵向平面。网格上…

介绍架构分类、设计及架构师工作

title: 介绍架构分类、设计及架构师工作 date: 2019-06-07 13:49:00 tags: 架构分类架构设计功能设计架构师 categories:架构 介绍 本文从理论上分析、梳理架构相关知识&#xff0c;帮助自己更好的理解架构工作。 什么是架构和架构分类 什么是架构 关于架构的定义业界有太多…

致敬白衣天使,学习Python读取

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、c 主页&#xff1a;阿玥的小东东 故事设定&#xff1a;现在学校要求对所有同学进行核酸采集&#xff0c;每位同学先在宿舍内等候防护人员&#xff08;以下简称“大白”&#xff09;叫号&#xff0c;叫到自己时去停车场排…

JDK 8 JVM内存结构详解

前言 本文所介绍的是 JDK 1.8 版本&#xff0c;其他版本的 JDK 在这里并不一定正确&#xff1b;内容主要摘自周志明的《深入理解Java虚拟机》一书的关键点&#xff0c;并根据自身的理解进行记录。感兴趣的同学可以去阅读原著。 JVM 的内存结构&#xff0c;主要包括以下 5 个区…

Jupyter 插件配置和主题设置

Jupyter 插件配置和主题设置 前提需要暗转Anaconda 或者系统已有Jupyter。 即使想在conda 虚拟环境中使用Jupyter 也不用在虚拟环境中重新安装和配置Jupyter相关包。 在base环境中&#xff0c;下载插件管理包&#xff1a; pip install jupyter_contrib_nbextensions -i htt…

开源项目 —— 原生JS实现斗地主游戏 ——代码极少、功能都有、直接粘贴即用

目录 效果如下 目录结构 GameEntity.js GrawGame.js konva.min.js PlayGame.js veriable.js index.html 结语&#xff1a; 前期回顾 卡通形象人物2 写代码-睡觉 丝滑如德芙_0.活在风浪里的博客-CSDN博客本文实现了包含形象的卡通小人吃、睡、电脑工作的网页动画https://…

【Pytorch项目实战】之语义分割:U-Net、UNet++、U2Net

文章目录博主精品专栏导航一、前言1.1、什么是图像分割&#xff1f;1.2、语义分割与实例分割的区别1.3、语义分割的上下文信息1.4、语义分割的网络架构二、网络 数据集2.1、经典网络的发展史&#xff08;模型详解&#xff09;2.2、分割数据集下载三、算法详解3.1、U-Net3.1.1、…

oceanbase部署--使用OBD自动化部署三节点集群

准备步骤&#xff1a; 先将192.168.152.30 现有单节点集群stop&#xff0c;然后克隆两台虚拟机并在workstations重置网卡MAC&#xff0c;配置新主机IP [adminoceanbase ~]$ obd cluster list ---------------------------------------------------------------------- | …

【C语言学习笔记】:函数和对象

一、本篇要学习的内容和知识结构概览 二、知识点逐条分析 1. 混合型语言 C源文件的文件扩展名为.cpp, 也就是c plus plus的简写, 在该文件里有且只能有一个名为main的主函数, 它作为程序的入口. 因为这个主函数的存在, 所以C被称为混合型语言. 2. C语言当中的注释 第一种: …

[单片机框架][调试功能] 回溯案发现场

程序莫名死机跑飞&#xff0c;不知道问题&#xff0c;那么下面教你回溯错误源 回溯案发现场一、修改HardFault_Handler1. xx.s 在启动文件&#xff0c;找到HardFault_Handler。并修改。2. 定义HardFault_Handler_C函数。&#xff08;主要是打印信息并存储Flash&#xff09;3. 根…

javascript测试题

一、填空题 1. JavaScript 有两种引用数据类型 &#xff1a;___数组__、_____对象_ __。2. Javascript 通过___setTimeout______延迟指定时间后&#xff0c;去执行某程序。 3. Javascript 里 String 对象通过____indexOf____方法取第一次出现子字符 串的字符位置。4. Javascrip…