一、while循环的基础语法
1.程序中的循环
while 条件:#语法格式
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)... 只要条件满足,会无限循环执行
使用循环语句简单搞定
i = 0
while i < 100:
print("小美,我喜欢你")
i += 1
2.while循环的注意事项
(1)条件需提供布尔类型结果,True继续,False停止
(2)空格缩进不能忘
(3)请规划好循环终止条件,否则将无限循环
二、while循环的基础案例
# 演示while 循环的基础案例 -猜数字
# 获取范围在1-100的随机数字
import random
num = random.randint(1,100)
# 定义一个变量,记录总共猜测了多少次
count = 0
# 通过一个布尔型的变量,做循环是否继续的标记
flag = True
while flag:
guess_num = int(input("请输入你猜测的数字:"))
count += 1
if guess_num == num:
print("猜中了")
# 设置False为终止循环的条件
flag = False
else:
if guess_num > num:
print("你猜测的大了")
else:
print("你猜测的小了")
print(f"你总共猜测了:{count}次")
三、while 循环的嵌套应用
1.嵌套循环的语法格式
while 条件1:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
while 条件2:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
...(省略)...
2.嵌套循环需要注意的地方
(1)注意条件的控制,避免无限循环
(2)多层嵌套,主要空格缩进确定层次关系
3.嵌套循环的使用难点
循环条件的控制,层次越多越复杂,需要细心+耐心
"""
演示while循环的嵌套使用
表白,送100天,每天送10朵玫瑰
"""
# 外层,表白100天的控制
# 内存,每天的表白都送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}天,表白成功")
四、while循环的嵌套案例
打印九九乘法表
在要完成的案例中,需要使用print语句,输出不换行的功能,非常简单,实现方式如下:
print("Hello",end='')
print("World",end='')
输出结果为HelloWorld
在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键。
它可以让我们的多行字符串进行对齐。
比如:
print("Hello World")
print("itheima best") #使用空格无法对齐
print("Hello\tWorld")
print("itheima\tbest")#使用\t后,可以对齐
输出如下:
Hello World
itheima best
Hello world
itheima best
"""
演示while循环的嵌套使用
循环嵌套案例:打印输出九九乘法表
"""
# 定义外层循环的控制变量
i = 1
while i <= 9:
# 定义内层循环控制变量
j = 1
while j <= i:
# 内层循环的print语句,不要换行,通过\t制表符进行对齐
print(f"{j}*{i}={j*i}\t",end='')
j += 1
i += 1
print() # print空内容,就是输出一个换行
五、for循环的基础语法
1.for循环
除了while循环语句外,python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:
(1)while循环的循环条件是自定义的,自行控制循环条件
(2)for循环是一种“轮询”机制,是对一批内容进行“逐个处理”
2.for循环语句
(1)程序中的for循环
for 临时变量 in待处理数据集:
循环满足条件时执行的代码
(2)遍历字符串
#定义字符串name
name = "itheima"
#for循环处理字符串
for x in name:
print(x)
3.for循环注意点及应用
同while循环不同,for循环是无法定义循环条件的。只能从被处理的数据集中,依次取出内容进行处理。
所以,理论上讲,python的for循环无法构建无限循环(被处理的数据集不可能无限大)
应用(数字符串中多少个a)
count = 0
name = "itheima is a brand of itcast"
for x in name:
if x == "a":
count += 1
print(f"被统计的字符串中有{count}个a")
4.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]
# 作业 有几个偶数,序列(1,100),统计有多少个偶数出现
count = 0
for x in range(1,100):
if x % 2 == 0:
count += 1
print(f"1到100(不含100本身)范围内,有{count}个偶数")
补充:
(1)for循环中的临时变量,其作用域限定为:
循环内
(2)这种设定:
是编程规范的限定,而非强制限定。
不遵守也能正常运行,但是不建议这样做。
如需访问临时变量,可以预先在循环外定义它。
六、for循环嵌套
坚持100天,每天送花10朵玫瑰花(以向小美表白的案例为例)
"""
演示嵌套应用for循环
"""
# 坚持表白100天,每天都送10朵玫瑰花
# range控制for循环
i = 1
for i in range(1,101):
print(f"今天是向小美表白的第{i}天,加油坚持")
# 内层循环
for j in range(1,11):
print(f"给小美送的第{j}朵玫瑰花")
print("小美我喜欢你")
print(f"第{i}天,表白成功")
七、循环中断:break和continue
# 演示continue的嵌套应用
for i in range(1,6):
print("语句1")
for j in range(1,6):
print("语句2")
continue
print("语句3")
print("语句4")
Break
for i in range(1,101):
print("语句1")
break
print("语句2")
print("语句3")
八、综合案例开发
"""
演示循环综合案例,发工资
"""
# 定义账户余额变量
money = 10000
# for循环对员工发放工资
for i in range(1,21):
import random
score = random.randint(1,10)
if score < 5:
print(f"员工{i}绩效分{score},不满足,不发工资,下一位")
# continue跳过发放
continue
# 要判断余额足不足
if money >= 1000:
money -= 1000
print(f"员工{i},满足条件发放工资1000,公司账户余额:{money}")
else:
print(f"当前余额不足,当前余额:{money}元,不足以发工资,不发了,下个月再来")
# break 结束发放
break