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

Python学习从0到1 day8 Python循环语句

我相信有些友情不会被时间打败,但我也知道,我们没有办法像从前一样常常相聚,时常联系,所以我想让你知道,我希望你过的很好,像你的照片一样好,我希望你很顺利,像你曾经在我面前憧憬的那样,往前跑的时候,千万别回头,但如果你很需要有人陪你说话,别忘了我永远在这里,永远是你的兄弟

                                                                                                                       ——致我的朋友

                                                                                                                                    24.1.24

一、while循环语句

1.while循环的语法格式:

while  条件:

        条件满足时,做的事情1

        条件满足时,做的事情2

        条件满足时,做的事情3

                ……省略……

2.引例

# 演示while循环的基础英语应用
i = 0
while i < 100:print("一切都会好的" )i=i+1

3.while循环注意点

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

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

③空格缩进和if判断一样,都需要设置,以确定层次之间的关系

4.练习案例:求1-100的和

通过while循环,计算1累加到100的和

sum = 0
i = 1
while(i<=100):sum =sum + ii=i+1
print(f'1-100累加的和为:{sum}')

5.猜数字案例

设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数

        无限次机会,直到猜中为止

        每一次猜不中,会提示大了还是小了

        猜完数字后,提示猜了几次

随机数可以使用:

        import random

        num = random.randint(1,100)

# 设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数
import random
result = random.randint(1,100)
i=1
while True:num = int(input(f'请您猜一个数字,这是第{i}次猜测\n'))i+=1if result == num:print("恭喜您,猜中了")breakelif result > num:print("猜小了")else:print("猜大了")

6.while嵌套循环

1.引例:

小明要给小美表白,小明坚持一百天并且每天都送10朵花,小美就会和小明在一起

i = 1
while i <= 100:print(f"今天是第{i}天,准备去表白")j = 1while j <= 10:print(f"送出了第{j}朵玫瑰花")j += 1print("小美,我喜欢你")i+=1
print(f"坚持{i-1}天,表白成功")

2.while循环的嵌套——注意点

同判断语句的嵌套一样,循环语句的嵌套,要注意空格的缩进

        基于空格缩进来决定层次关系

注意条件的设置,避免出现无限循环(除非真的需要无限循环)

3.总结

1.嵌套循环的语法格式:

        while 条件1:

                条件1满足时,做的事情1

                条件1满足时,做的事情2

                条件1满足时,做的事情3

                条件1满足时,…省略…

                while条件2:

                        条件2满足时,做的事情1

                        条件2满足时,做的事情2

                        条件2满足时,做的事情1

                        条件2满足时,…省略…

2.嵌套循环需要注意的地方:

        注意条件的控制,避免无限循环

        多层嵌套,主要空格缩进来确定层次关系

3.嵌套循环的使用难点:

        循环条件的控制,层次越多越复杂

7.while嵌套循环案例——打印九九乘法表

补充知识:print输出不换行

print("xxx",end='')

print("zzz",end='')

输出:xxxzzz

补充知识:制表符\t

效果等同于在键盘上按上Tab,有一个Tab的缩进,它可以让我们的字符在多行间对齐

1.控制行的循环:i <= 9

2.控制每一行输出的循环:j <= i

i=1
while i <= 9:j = 1while j <= i:print(f"{i} * {j} = {i * j}\t",end='')j += 1print()i+=1

二、for循环基本语法

1.for循环与while循环区别:

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

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

2.for循环语法

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

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

3.遍历字符串

for循环是将字符串的内容:依次取出

所以,for循环也被称之为:遍历循环

future = "一切都会好的,我一直相信"
for i in future:print(i)

4.for循环注意点:

for 变量 in 待处理的数据集(序列)

同while循环不同,for循环是无法定义循环条件

所以只能从被处理的数据集中,依次取出内容进行处理

所以,理论上讲,python的for循环无法构建无限循环(被处理的数据不可能无限大)

5.练习案例:数一数有几个a

定义字符串变量name,内容为:“itheima is a brand of itcast”

通过for循环,遍历此字符串,统计有多少个英文字母:"a"

提示:

        ①计数可以在循环外定义一个整数类型遍历用来做累加计数

        ②判断是否为字母”a“,可以通过if语句结合比较运算符来完成

name = "itheima is a brand of itcast"
num = 0
for i in name:if i == 'a':num += 1
print(f"name字符串中有{num}个英文字母a")

6.range语句

for循环语句,本质上是遍历:序列类型

尽管除字符串外,其他的序列类型目前没学习到,但是不妨碍我们通过学习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 i in range(9):print(i)
print("*********")
for j in range(6,9):print(j)
print("*********")
for k in range(1,9,3):print(k)

7.练习案例:有几个偶数

定义一个数字变量num,内容随意

并使用range()语句,获取从1到num的序列,使用for循环遍历它

在遍历的过程中,统计有多少偶数出现

提示:

        1.序列可以使用:range(1,num)得到

        2.偶数通过if来判断,判断数字余2是否为0即可

num = 114
count = 0
for i in range(1,num):if i % 2 == 0:count+=1
print(f"一共有{count}个偶数")

8.for循环临时变量作用域

①for循环内的临时变量,其作用域限定为:

        循环内

②这种限定:

        是编程规范的限定,而非强制限定

        不遵守也能正常运行,但是不建议这样做

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

i = 0
for i in range(5):print(i)
print(i)

9.for循环的嵌套应用

每天都去向小美表白,直到成功为止

每次表白的流程是:送10朵玫瑰然后表白

1.for循环的嵌套语法:

for 临时变量 in 待处理数据集(序列):

        循环满足条件应做的事情1

        循环满足条件应做的事情2

        循环满足条件应做的事情n

        …………

        for 临时变量 in 待处理数据集(序列):

                循环满足条件应做的事情1

                循环满足条件应做的事情2

                循环满足条件应做的事情n

                …………

2.案例

小明要给小美表白,小明坚持一百天并且每天都送10朵花,小美就会和小明在一起

for i in range(1,101):print(f"今天是表白的第{i}天")for j in range(1,11):print(f"送了第P{j}朵花")
print("表白成功")

3.嵌套循环的嵌套注意点

        需要注意缩进,嵌套for循环同样通过缩进确定层次关系

        for循环和while循环可以相互嵌套使用

4.练习案例——for循环打印九九乘法表

for i in range(1,10):for j in range(1,i+1):print(f"{i} * {j} = {i * j}\t",end="")print()

三、循环中断:break和continue

python提供continue和break关键字

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

1.continue

continue关键字用于:中断本次循环,直接进入下一次循环

continue可以用于:for循环和while循环,效果一致

2.break

break关键字用于:直接结束(整体)循环

break可以用于:for循环和while循环,效果一致

3.注意事项

continue和break,在for和while循环中作用一致

在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用

四、综合案例

练习案例——发工资

某公司,账户余额有1W元,给20名员工发工资

员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元

领工资时,财务判断员工的绩效分1-10(随机生成),如果低于5,不发工资,换下一位

如果工资发完了,结束发工资

提示:

        使用循环对员工依次发放工资

        continue用于跳过员工,break直接结束发工资

        随机数可以用:import random 

                                 num = random randint(1,10)

person = 0
for i in range(1,21):print(f"这是{i}号员工")import randomgrade = random.randint(1,11)if grade < 5:print("您的绩效不达标,不发工资")continueelse:if person > 10:print("没钱了,下个月再领吧")break;else:print("领到1000")person += 1

相关文章:

  • [CUDA 学习笔记] CUDA kernel 的 grid_size 和 block_size 选择
  • k8s之ingress
  • Parallels Desktop 19 mac 虚拟机软件 兼容M1 M2
  • golang常用库之-golang-jwt/jwt包
  • go-carbon v2.3.6 发布,轻量级、语义化、对开发者友好的 golang 时间处理库
  • 云风网(www.niech.cn)个人网站搭建(二)服务器域名配置
  • 用于垃圾回收的运行时配置选项
  • k8s---包管理器helm
  • 模型部署flask学习篇(一)---- flask初始及创建登录页面
  • c#企业微信上传的文件丢失格式,pdf不能预览,errcode:44001
  • Python中按照字典value中的某个类属性对字典重排序
  • 2023年第十四届蓝桥杯软件赛省赛总评
  • 基于SpringBoot的宽带业务管理系统
  • 云原生离线工作流编排利器 -- 分布式工作流 Argo 集群
  • GBase 8s常见问题解析---追踪统计SQL执行情况 SQLTRACE
  • CEF与代理
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • HTML中设置input等文本框为不可操作
  • Javascript 原型链
  • Python_OOP
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React的组件模式
  • Vue UI框架库开发介绍
  • vue-cli在webpack的配置文件探究
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 从重复到重用
  • 构造函数(constructor)与原型链(prototype)关系
  • 解析 Webpack中import、require、按需加载的执行过程
  • 聊聊hikari连接池的leakDetectionThreshold
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 软件开发学习的5大技巧,你知道吗?
  • 实现简单的正则表达式引擎
  • 一文看透浏览器架构
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • # centos7下FFmpeg环境部署记录
  • #1015 : KMP算法
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • $L^p$ 调和函数恒为零
  • (16)Reactor的测试——响应式Spring的道法术器
  • (42)STM32——LCD显示屏实验笔记
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (九)One-Wire总线-DS18B20
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET 指南:抽象化实现的基类