参考视频和资料:第一阶段-第四章-01-while循环的基础应用_哔哩哔哩_bilibili
Day04
对应视频:第一阶段第四章
第四章 循环语句
循环同样是程序最基础、最核心的逻辑功能,广泛存在,是非常多功能实现的基础
目录
一、while循环
1.语法
while 条件:
条件满足时要做的事1
条件满足时要做的事2
条件满足时要做的事3
......
while的条件要求得到bool类型,即:True表示继续循环,False表示循环终止
【注意】:(1)设置终止条件,不然会出现死循环
(2)注意空格缩进
"""
循环语句基础练习:求从1加到100的和
"""
i = 1
sum = 0
while i <= 100:
sum += i
i += 1
print(f"从1加到100的和是:{sum}")
2.猜数字小练习
(1)方法一
"""
设置一个1~100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数字
1. 无限次机会,直到猜中为止
2. 每次猜不中都会提示大或小
3. 猜完数字后,提示猜了几次
"""
import random
randnum = random.randint(1,100)
num = 1
guess_num = int(input("请输入您所猜的数字:"))
while guess_num != randnum:
if guess_num < randnum:
guess_num = int(input("您猜小了,请再次输入您所猜的数字:"))
else:
guess_num = int(input("您猜大了,请再次输入您所猜的数字:"))
num += 1
print(f"恭喜您猜对了,总共猜了{num}次")
(2)方法二:设置flag
import random
randnum = random.randint(1,100)
count = 0
flag = True
while flag:
guess_num = int(input("请输入您猜测的数字:"))
count += 1
if guess_num == randnum:
print(f"恭喜您猜中了!总共猜了{count}次")
flag = False
else:
if guess_num < randnum:
print("您猜小了")
else:
print("您猜大了")
3. while嵌套
(1)语法
while 条件1:
条件1满足时要做的事1
条件1满足时要做的事2
条件1满足时要做的事3
......
while 条件2:
条件2满足时要做的事1
条件2满足时要做的事2
条件2满足时要做的事3
......
【注意】:(1)缩进与冒号
(2)注意设置条件,避免出现无限循环
补充:
(1)输出不换行:print语句中加上end=' '
print("Hello",end='')
print("World",end='')
(2)制表符:\t——效果等同于tab键,他可以让我们的多行字符串对齐
print("Hello World")
print("itheima best")
print("Hello\tWorld")
print("itheima\tbest")
(3)print():内容空,就是输出一个换行
4.打印九九乘法表小练习
i = 1
while i < 10:
j = 1
while j <= i:
print(f"{j}*{i}={i*j}\t",end='')
j += 1
print()
i += 1
二、 for循环
1.语法:
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
表达的意思:每次循环都从待处理数据集中依次取出数据,赋给临时变量,执行循环体
即:遍历循环
name = "lisi"
for x in name:
print(x)
【注意】:
(1)缩进与冒号
(2)for循环是无法定义循环条件的,只能从被处理的数据集中,一次取出内容进行处理。一般无法构建无限循环,也就是被处理的数据集不可能无限大
补充:for循环中待处理的数据集也就是序列类型
序列类型:其内容可以被一个一个地取出,包括字符串、列表和元组等
2.字母计数小练习
"""
统计itheima is a brand of itcast中含有多个个a
"""
sum = 0
for x in "itheima is a brand of itcast":
if x == "a":
sum += 1
print(f"itheima is a brand of itcast中共含有{sum}个a")
三、while与for循环的区别
for循环与while循环完成的功能差不多,区别如下:
1.while循环的循环条件是自定义的,自行控制循环条件
2.for循环是一种【轮询】机制,是对一批内容进行逐个处理——将待办事项逐个完成的循环机制
四、rang语句
range语句可以获得一个简单的数字序列
1.语法1
range(num)
获取一个从0开始到num结束的数字序列(不含num本身)
for x in range(3):
print(x)
2.语法2
range(num1,num2)
获取一个从num1开始到num2结束的数字序列(不含num2本身)
for x in range(5,8):
print(x)
3.语法3
range(num1,num2,step)
获取一个从num1开始到num2结束的数字序列(不含num2本身,数字之间的步长以step为准()step默认为1
for x in range(5,10,2):
print(x)
小技巧:可以使用range来确定for循环要执行的次数
for x in range(3):
print("好好学习")
4.数字统计小练习
print("统计从1到num(不包含num)中的偶数出现的个数")
num = int(input("请输入终止数字num:"))
sum = 0
for x in range(1,num):
if x % 2 == 0:
sum += 1
print(f"从1到{num}中一共出现了{sum}次偶数")
五、for循环中临时变量的作用域
1.编程规范上:只限定在for循环的内部
2.实际上:可以在for循环外部访问临时变量,但是不建议这么做
解决方法:在for循环之前定义临时变量。相当于是在执行循环的时候,不断去覆盖临时变量的值
i = 0
for i in range(3):
print(i)
print(i)
六、for循环的嵌套
1.语法
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行的代码1
循环满足条件时执行的代码2
循环满足条件时执行的代码N
......
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行的代码1
循环满足条件时执行的代码2
循环满足条件时执行的代码N
......
2.九九乘法表小练习
for i in range(1,10):
for j in range(1,i+1):
print(f"{j}*{i}={j*i}\t",end='')
print()
3.while与for循环的相互嵌套
for循环或者while循环:
循环满足条件时执行的代码1
循环满足条件时执行的代码2
循环满足条件时执行的代码N
......
for循环或者while循环:
循环满足条件时执行的代码1
循环满足条件时执行的代码2
循环满足条件时执行的代码N
......
七、循环中断:break和continue
1.continue
中断所在循环的当次执行,直接进入下一次循环
for循环和while循环中都可以用
常用于循环中因为某些原因临时结束本次循环,进入下一个循环中
【注意】:continue关键字只控制它所在的循环
for i in range(1,3):
print("语句1")
for j in range(1,3):
print("语句2")
continue
print("语句3")
print("语句4")
continue语句在内层的for循环,所以当运行完语句2后,会中断内层for循环的该次循环,进行下一次循环,语句3并不会被执行
2.break
直接结束所在的整个循环
for循环与while循环都可以用
【注意】:break关键字只控制他所在的循环
对于嵌套循环,continue和break都只作用在所在的循环上,无法对上层循环起作用
for i in range(1,3):
print("语句1")
for j in range(1,3):
print("语句2")
break
print("语句3")
print("语句4")
break语句在内层的for循环,所以当运行完语句2后,会直接中断内层的for循环,执行语句4,再进行下一次外层的for循环,语句3并不会被执行
3.发工资小练习
money = 10000
import random
for i in range(1,21):
score = random.randint(1,10)
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位")
continue
money -= 1000
print(f"向员工{i}发放工资1000元,账户余额还剩余{money}元")
if money == 0:
print("工资发完了,下个月再领取吧。")
break