声明
文章是基于:
哔哩哔哩上的《黑马程序员python教程,8天python从入门到精通,学python看这套就够了》视频教程所做的学习笔记,仅为学习使用!!如有侵权,联系删除
目录
遍历:是指通过某种顺序对一个数据结构中的所有元素进行访问。
一、while循环
(一)基础语法
i = 0
while i < 100:
print("加油")
i += 1
- while的条件需得到布尔类型,True表示继续循环,False表示结束循环。
- 需要设置循环终止的条件,如i += 1配合 i < 100,就能确保100次后停止,否则将无限循环。
- 空格缩进和if判断一样,都需要设置。
(二)基础案例
1、求1 - 100的和
sum = 0
i = 1
while i <= 100:
sum += i
i += 1
print(f"1-100的和是"{sum})
2、猜数字
# 获取范围在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
elif guess_num > num:
print("你猜的大了")
else:
print("你猜的小了")
print(f"你总共猜测了{count}次")
(三)嵌套应用
# 外层循环:表白100天的控制
i = 1
while i <= 100:
print( f"今天是第{i}天" )
j = 1
# 内层循环:每天都送10只玩偶的控制
while j <= 10:
print( f"送给你第{j}只")
j += 1
i += 1
print(f"坚持了{i-1}天")
- 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
- 基于空格缩进来决定层次关系
- 注意条件的设置,避免出现无限循环(除非真的需要无限循环)。
(四)嵌套案例
1、通过while嵌套循环,打印九九乘法表
(1)补充知识
- 默认print语句输出内容会自动换行
- 我们需要使用print语句,输出不换行的功能,非常简单,实现方式如下:
- 在字符串中,有一个特殊符号:\t,效果等同于在键盘上按下:tab键;它可以让我们的多行字符串进行对齐:
(2)代码实现
# 定义外层循环的控制变量
# 控制行
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、
- 同while循环不同,for循环是无法定义循环条件的,循环能执行多少次取决于被处理数据集里有多少份数据供循环处理。
2、
(二)range语句
- 获得一个简单的数字序列(可迭代类型的一种)。
1、range(num)
- 获取一个从0开始,到num结束的数字序列(不含num本身)
- 如range(5)取得的数据是:[0, 1, 2, 3, 4]
-
for x in range(10): print(x)
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循环内部
(四)嵌套应用
"""
同样以向小美表白的案例为例
坚持表白100天
每天送花10束
"""
i = 1
for i in range(1, 101):
print(f"今天是表白的第{i}天")
for j in range(1, 11):
print(f"送给小美的第{j}朵玫瑰花")
print(f"第{i}天的表白结束")
print(f"第{i}天,表白成功")
- 和while循环一样,需要注意缩进,因为通过缩进,确定层次关系
(五)嵌套案例
1、通过for循环,打印九九乘法表
# 控制外层循环
# i表示行
for i in range(1, 10):
# 内层循环控制列
# j表示列
j = 0
for j in range(1, i+1):
# 在内层循环中输出每一行的内容
print(f"{j} * {i} = {j * i}\t", end='')
# 输出一个回车符
print()
三、while循环和for循环的区别
(一)终止条件
- while循环:边界条件
- for循环:遍历完整个列表
排队打疫苗的场景:
- while循环:设定了边界条件疫苗总共500支,在打完之前可以一直排队一直打,打完500支就没有了。
- for循环:排到的一组人都会依次打完,一个都不会少。
四、循环中断:break 和 continue
(一)continue
- 中断本次循环,直接进入下一次循环
- for循环和while循环,效果一致
- 只能作用在所在的循环上,无法对上层循环起作用
(二)break
- 直接结束所在循环
- for循环和while循环,效果一致
- 只能作用在所在的循环上,无法对上层循环起作用
五、综合案例
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