day4
笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了
目录
- day4
- 28、while 循环的嵌套应用
- 29、while 循环案例 — 九九乘法表
- 补充知识
- 示例:九九乘法表
- 30、for 循环基本语法
- while 和 for 循环对比
- for 循环
- 示例
- 注意点
- 31、for 循环案例—数一数有几个a
- 32、range 语句
- 33、for 循环临时变量作用域
- 34、for 循环的嵌套使用
- 35、for 循环打印九九乘法表
- 36、continue 和 break
- continue
- break
- 37、循环综合案例:发工资
28、while 循环的嵌套应用
基本语法格式:
注意事项:
- 同判断语句的嵌套一样,循环语句的嵌套,要注意空格缩进。
- 基于空格缩进来决定层次关系
- 注意条件的设置,避免出现无限循环(除非真的需要无限循环)
示例程序:
"""
演示 while 循环的嵌套使用
"""
# 外层:表白 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} 天,表白成功。")
29、while 循环案例 — 九九乘法表
补充知识
-
print 输出不换行
print("hello", end='') print("hello", end='')
-
制表符
\t
print("hello\tworld") print("itheima\tbest")
示例:九九乘法表
i = 1
while i <= 9:
j = 1
while j <= i:
print(f"{i}*{j}={i*j}\t", end='')
j += 1
print()
i += 1
输出结果:
30、for 循环基本语法
while 和 for 循环对比
- while循环的循环条件是自定义的,自行控制循环条件
- for循环是一种”轮询”机制,是对一批内容进行”逐个处理”
for 循环
基本语法格式:
从待处理数据集中:逐个取出数据,赋值给临时变量。
示例
"""
演示 for 循环的基础语法
"""
name = "itheima"
for x in name:
# 将 name 的内容,挨个取出赋予 x 临时变量
# 就可以在循环体内对 x 进行处理
print(x)
for循环是将字符串的内容:依次取出,所以,for循环也被称之为:遍历循环
理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
注意点
for循环的注意点:
- 无法定义循环条件,只能被动取出数据处理;
- 要注意,循环内的语句,需要有空格缩进。
31、for 循环案例—数一数有几个a
name = "itheima is a brand of itcast"
count = 0
for x in name:
if(x == 'a'):
count += 1
print(f"itheima is a brand of itcast 中共含有:{count}个字母a")
32、range 语句
语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:字符串、列表、元组等。
其中,可迭代类型可以是 range。
1、语法1:range(num)
获取一个从0开始,到num结束的数字序列(不含num本身),如range(5)取得的数据是:[0, 1, 2, 3, 4];
2、语法2:range(num1, num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身),如:range(5, 10) 取得的数据是:[5, 6, 7, 8, 9];
3、语法3:range(num1, num2, step)
获得一个从 num1 开始,到 num2 结束的数字序列(不含 num2 本身),数字之间的步长,以 step 为准( step 默认为1),如,range(5, 10, 2)取得的数据是:[5, 7, 9]。
示例:
"""
演示 Python 中的 range() 语句的基本使用
"""
# range 语法1:range(num)
for x in range(10):
print(x)
# range 语法2:range(num1, num2)
for x in range(5, 10):
# 从 5 开始,到 10 结束(不包含 10 本身)的一个数字序列
print(x)
# range 语法3:range(num1, num2, step)
for x in range(5, 10, 2):
# 从 5 开始,到 10 结束(不包含10本身)的一个数字序列,数字之间的间隔是2
print(x)
练习:
示例程序:
count = 0
num = int(input("请输入一个数:"))
for x in range(1, num):
if(x % 2 == 0):
count += 1
print(f"1到{num}范围内,共有{count}个偶数")
33、for 循环临时变量作用域
如果在 for 循环外部访问临时变量:
- 实际上是可以访问到的;
- 在编程规范上,是不允许、不建议这么做的。
如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义。
34、for 循环的嵌套使用
基本语法格式:
示例:
"""
演示 for 循环的嵌套使用
"""
# 坚持表白 100 天,每天都送 10 朵花
for i in range(1, 101):
print(f"今天是向小美表白的第{i}天,加油坚持。")
# 内层循环
for j in range(1, 11):
print(f"给小美送的第{j}朵玫瑰花")
print("小美我喜欢你")
print(f"第{i}天,表白成功")
35、for 循环打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{i}*{j}={i*j}\t", end='')
print()
36、continue 和 break
continue
continue关键字用于:中断本次循环,直接进入下一次循环
continue可以用于: for循环和while循环,效果一致
# 演示循环中断语句 continue
for i in range(1, 6):
print("语句1")
continue
print("语句2")
continue在循环中的嵌套使用
# 演示 continue 的嵌套应用
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
continue
print("语句3")
print("语句4")
break
break 关键字同样只可以控制:它所在的循环永久中断。
# 演示循环中断语句 break
for i in range(1, 101):
print("语句1")
break
print("语句2")
print("语句3")
break 在循环中的嵌套使用
# 演示 break 的嵌套应用
for i in range(1, 6):
print("语句1")
for j in range(1, 6):
print("语句2")
break
print("语句3")
print("语句4")
37、循环综合案例:发工资
示例:
import random
num = random.randint(1, 10)
sum = 10000
for i in range(1, 21):
salary = 1000;
num = random.randint(1, 10)
if(num < 5):
print(f"员工{i},绩效分{num},低于5,不发工资,下一位")
continue
if sum >= 1000:
sum -= 1000
print(f"员工{i}发放工资1000元,公司账户余额:{sum}")
else:
print(f"余额不足,当前余额:{sum}元,不足以发工资,下个月再来")
break