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 = 1while j <= 10:print(f"送给小美第 {j} 只玫瑰花")j += 1print("小美,我喜欢你")i += 1print(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 = 1while j <= i:print(f"{i}*{j}={i*j}\t", end='')j += 1print()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本身)的一个数字序列,数字之间的间隔是2print(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")continueprint("语句2")
continue在循环中的嵌套使用
# 演示 continue 的嵌套应用
for i in range(1, 6):print("语句1")for j in range(1, 6):print("语句2")continueprint("语句3")print("语句4")
break
break 关键字同样只可以控制:它所在的循环永久中断。
# 演示循环中断语句 break
for i in range(1, 101):print("语句1")breakprint("语句2")
print("语句3")
break 在循环中的嵌套使用
# 演示 break 的嵌套应用
for i in range(1, 6):print("语句1")for j in range(1, 6):print("语句2")breakprint("语句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,不发工资,下一位")continueif sum >= 1000:sum -= 1000print(f"员工{i}发放工资1000元,公司账户余额:{sum}")else:print(f"余额不足,当前余额:{sum}元,不足以发工资,下个月再来")break