我相信有些友情不会被时间打败,但我也知道,我们没有办法像从前一样常常相聚,时常联系,所以我想让你知道,我希望你过的很好,像你的照片一样好,我希望你很顺利,像你曾经在我面前憧憬的那样,往前跑的时候,千万别回头,但如果你很需要有人陪你说话,别忘了我永远在这里,永远是你的兄弟
——致我的朋友
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 + i
i=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+=1
if result == num:
print("恭喜您,猜中了")
break
elif result > num:
print("猜小了")
else:
print("猜大了")
6.while嵌套循环
1.引例:
小明要给小美表白,小明坚持一百天并且每天都送10朵花,小美就会和小明在一起
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}天,表白成功")
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 = 1
while j <= i:
print(f"{i} * {j} = {i * j}\t",end='')
j += 1
print()
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 random
grade = random.randint(1,11)
if grade < 5:
print("您的绩效不达标,不发工资")
continue
else:
if person > 10:
print("没钱了,下个月再领吧")
break;
else:
print("领到1000")
person += 1