一、while 循环语句
1、基本语法:
while 条件:
条件满足的时候,需要执行的事情
注意:
- 条件所产生的结果必须是布尔类型的。当条件为 True 的时候运行循环;False 表示结束循环
- 需要设置循环的中止的条件,否则将无限的循环
- 空格缩进和冒号与 if 语句一样,都需要设置
示例:
i = 0
while i<5:
print(f"i={i}")
i = i + 1
2、案例:
(1)题目:
设置一个范围为0到50的随机的正整数,通过while循环,input 输入语句,判断输入的数字是否等于生成的随机数。
(2)要求:
- 无限次的机会,一直到猜中为止
- 每一次猜错了,都要进行提示,猜的数和随机生成的数更大还是更小
- 猜完后,输出一共猜了几次
(3)提示:
- 随机数的生成可以使用:
import random
num = random.randint(0,50)
(4)代码展示:
# 导入生成随机数的包
import random
# 使用random包中生成随机数的方法,生成0到50的随机的正整数
num = random.randint(0,50)
# 设置一个布尔类型的变量,做循环的条件
temp = True
# 设置一个变量,统计一共猜了多少次
n = 0
# 编写while循环
while temp:
# 接收输入的正整数
num1 = int(input("请输入你要猜的数字"))
# 进行判断是否与生成的数一致,并且进行提示
if num1 != num:
if num1 > num:
print("你猜大了")
else:
print("你猜小了")
else:
print("恭喜你猜对了")
# 更改temp变量,跳出while循环
temp = False
# 每猜一次,次数加一
n = n + 1
print(f"你一共猜了:{n}次")
二、while 循环的嵌套
1、基本格式:
while 条件1:
满足条件1时,所要执行的事情
while 条件2:
满足条件2时,所要执行的事情
注意:
- 同判断语句一样,循环的嵌套,要注意空格的缩进;因为是基于空格的缩进来决定层次关系的
- 注意条件的设置,避免出现无限循环
示例:
i = 0
# 设置外层循环的条件
while i < 2:
i = i + 1
j = 0
# 设置内层循环的条件
while j < 5:
j = j + 1
print(f"i = {i},j = {j}")
print("=====")
2、案例:
(1)题目:
通过while循环,打印九九乘法表
(2)提示:
- 控制行的循环:i <= 9
- 控制每一行输出的循环:j <= i
(3)补充:
1)print 输出语句不换行
默认的 print 语句输出内容都会自动的换行,若要使输出不换行,只需要在 print 语句中,加上end =''(两个单引号)。例如:print("Hello",end = '')
print("Hello")
print("World")
print("============")
print("Hello",end='')
print("World",end='')
ps: end='' 是使用的方法传参功能
2)制表符(\t)
在字符串中,\t 的效果等同于在键盘上按下 tab 键。其可以让多行的字符串进行对齐
print("Hi World")
print("Hello World")
print("============")
print("Hi\tWorld")
print("Hello\tWorld")
(4)代码展示:
i = 1
# 定义外层循环的控制变量
while i <= 9:
# 定义内层循环的控制变量
j = 1
while j <= i:
# 内层的循环不换行,并且通过\t制表符进行对齐
print(f"{i}*{j}={i*j}\t",end='')
j += 1
# print()就是换行的意思
print()
i += 1
三、for 循环语句
1、 基础语法:
(1)while语句和for语句的区别:
- while循环的循环条件是自定义的,自行控制循环条件
- for循环是一种“轮询”机制,是对一批内容进行“逐个处理”
(2)基本格式:
for 临时变量 in 待处理数据集:
满足条件时执行的代码
注意:
- 语法中的待处理数据集,严格上称之为:序列类型(序列类型指,其内容可以一个个依次取出的一种类型,其包括:字符串、列表、元组等等)
- for循环时将其 待处理数据集的内容:依次取出,所以for循环也被称为:遍历循环
- for循环是无法定义循环条件的,只能从被处理数据集中,依次取出内容进行处理,所以理论上for循环无法构建无限循环
- 循环内的语句,需要有空格缩进
示例:
# 定义字符串name
name = "Seventeen"
# for循环处理字符串
for n in name:
print(n)
2、range语句:
(1)用途:
可以通过range语句,获得一个简单的数字序列
(2)语法:
1) 语法1:
range(num)
ps:获取一个从0开始,到num结束的数字序列(不含num本身),例如:range(5)取得的数据是:[0,1,2,3,4]
# range 语法1 range(num)
for x in range(10):
print(x)
2) 语法2:
range(num1,num2)
ps:获得一个从num1开始,到num2结束的数字序列(不含num2本身),如:range(5,10)取得的数据是:[5,6,7,8,9]
# range 语法2 range(num1,num2)
for x in range(5,10):
print(x)
3) 语法3 :
range(num1,num2,step)
ps:获得一个从num1开始,到num2结束的数字序列(不含num2本身),数字之间的步长,以step为准(step默认为1),如range(5,10,2)取得的数据是[5,7,9]
# range 语法3 range(num1,num2,step)
for x in range(5,10,2):
print(x)
3、变量作用域
for循环的变量作用域:
for 临时变量 in 待处理数据集:
满足条件时执行的代码
我们可以看到从数据集中取出的数据赋值给的是一个临时变量。临时变量,在编程的规范上,作用范围(作用域),只限定在for循环的内部。
注意:如果在for循环的外部访问临时变量实际上是可以访问到的;但是在编程规范上,是不允许的,不建议这样做
i = 0
for i in range(5):
print(i)
# 外部访问
print("===")
print(i)
四、for循环的嵌套
1、基本格式:
for 临时变量 in 待处理数据集(序列):
循环满足条件时,执行的事情
for 临时变量 in 待处理数据集(序列):
循环满足条件时,执行的事情
示例:
i = 1
for i in range(i,3):
j = 1
for j in range(3):
print(f"({i}, {j})",end = ' ')
print()
2、案例:
(1)题目:
通过for循环,打印九九乘法表
(2)代码展示:
# 通过外层的循环控制行数
for i in range(1,10):
# 通过内层循环控制每一行的内容
for j in range(1,i + 1):
print(f"{i}*{j} = {i*j}\t",end =' ')
print()
五、循环的中断(break 和 continue)
在循环的过程中,会出现一些情况让我们不得不暂时跳过某次循环,直接进行下一次;或者提前退出循环,不再继续。对于这种场景,Python提供了continue和break关键字,用以对循环进行临时跳过和直接结束。
1、continue关键字
(1)作用:
- continue关键字用于中断本次循环,直接进入下一次循环。
- continue可用于for循环和while循环,两者的效果一致。
示例:
for i in range(3):
print("love")
continue
print("py")
(2)continue在嵌套循环中的应用:
注意:continue关怀剪子只可以控制它所在的循环临时中断
for i in range(2):
print("I")
for j in range(2):
print("love")
continue
print("py")
print("China")
print("========")
2、break关键字
(1)作用
-
break关键字用于直接结束循环
-
break可用于for循环和while循环,两者的效果一致。
示例:
for i in range(2):
print("1")
break
print("2")
print("3")
(2)break在嵌套循环中的应用:
break关键字同样只可以控制,它所在的循环结束
for i in range(2):
print("I")
for j in range(2):
print("love")
break
print("py")
print("China")
print("========")