Python-第四天 Python循环语句
Python-第四天 Python循环语句
- 第1章 while循环
-
1.1 while循环的基本语法结构
-
1.2 while循环的典型示例
-
1.3 while循环在复杂应用场景中的使用
-
1.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
代码解释
- while循环的条件必须是布尔值(即True或False),其中True表示继续执行循环体代码块。
- 必须设定循环终止的条件。例如,在每次迭代时将变量i增加1(i += 1),并配合i < 100,则可以在第100次迭代后退出循环;如果不设定终止条件则会陷入死锁。
- 空格缩进操作与if判断逻辑相同,在编程过程中也需要进行适当的配置。
练习案例:求1-100的和
需求:通过while循环,计算从1累加到100的和
提示:
请在程序运行前明确终止条件,并将其设定为保证while循环体执行不超过100次。
累积计算时,请确保所有的数值范围在起始值与最终值之间。
i = 0
sum = 0
while i <= 100:
sum += i
i+=1
print(sum)
代码解释
2.while循环的基础案例
猜数字案例
生成一个范围为1至100的随机整数变量,并利用while循环结构配合input函数获取用户输入的数据后与该随机数值进行比较
持续下去, 直到正确答案被发现
- 每次猜测失败时会告知过大或过小
- 在完成猜测之后会统计尝试次数
提示:
- 在无限的机遇面前,默认情况下不适用将数字累加作为终止条件判断标准;相反地,则应采用基于布尔值(True或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循环结构来实现九九乘法表的打印
print(‘Hello’,end=‘’)
print(‘World’,end=‘’)

- 使用制表符可以使多行字符串实现对齐。
- 在字符串中存在一个特殊符号:\t。
- 该符号能够使我们的多行字符串实现对齐。
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基础语法
除此之外,在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’的数量。
提示:
外部可以声明一个整型变量用于累加计算;判断字符是否是字母'a'可以通过使用if语句配合比较运算符来确定字符是否等于字母'a'。
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循环遍历该列表期间,在计算过程中统计其中偶数值的数量。
- 序列可以使用:range(1, num)得到
- 偶数通过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
...
代码解释
我们目前系统性地掌握了两种重要的编程结构——while循环和for循环。在编程逻辑中,while循环与for循环之间存在层次关系,在特定条件下可以实现互相调用。
练习案例-for循环打印九九乘法表
利用for循环结构生成九九乘法表的所有内容
【
- 双重循环结构中,外层循环负责处理行数据
- 可通过range函数生成数字序列,并结合for关键字构造循环结构
- 内层for循环的范围由当前外层循环所决定
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提供continue 和break 关键字
用以对循环进行临时跳过 和直接结束
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开始逐一发放固定金额的薪资待遇
-
在发放工资的过程中,在财务部门会根据员工的工作绩效评分(采用1到10分制,并通过随机的方式确定)
-
当所有员工的基本薪资发放完毕后将不再继续进行后续分配流程
-
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}元')
代码解释

