Python中的基础循环
二.Python中的循环
1.两种基础循环
while循环
for循环
2.while循环
(1).while循环的基础语法
while (条件):
条件满足时 , 做的事情1
条件满足时 , 做的事情2
条件满足时 , 做的事情3
...(省略)...
注意
空格缩进,确定层次关系
条件必须是布尔类型,True继续,False停止
注意结束条件,不能死循环
(2).whil循环的嵌套
while(条件1):
条件1满足时 , 做的事情1
条件1满足时 , 做的事情2
条件1满足时 , 做的事情3
...(省略)...
while(条件2):
条件2满足时 , 做的事情1
条件2满足时 , 做的事情2
条件2满足时 , 做的事情3
...(省略)...
(3).while循环练习
import random
num = random.randint(1,100)
flag = True
count=1
while flag:
guss = int(input("请输入猜测的数字:"))
if(guss == num):
print("bingo")
print("你一共猜了%d次"%count)
flag = False
else:
if (guss < num):
print("猜小了")
else:
print("猜大了")
count+=1
试着打印如下内容:
i=1
while (i<=9):
j = 1
while(j <= i):
num = i * j
print(f"{j}*{i}={num}\t",end='')
j+=1
i+=1
print()
3.for循环
(1).for循环的基础语法
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
对待处理数据集里面的数据挨个取出,每一次循环,就将当前数据赋予这个临时变量
例子
#定义字符串name
name = "D0g3"
#for循环处理字符串
for i in name:
print(i)
注意
for循环无法定义循环条件
只能从被处理的数据集中,依次取出内容进行处理。
所以理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)
注意空格缩进
(2).range语句
语法中的:待处理数据集,严格来说,称之为:序列类型
序列类型指,其内容可以一个个依次取出的的一种类型,包括:
· 字符串
· 列表
· 元组
· 等
for循环语句,本质上是遍历:序列类型
语法1:
range(num)
获取一个从0开始,到num结束的数字序列(不含num本身)
如
range(5)
#取得的数据是:[0,1,2,3,4]
语法2:
range(num1,num2)
获取一个从num1开始,到num2结束的数字序列(包含num1,但不含num2本身)
如
range(5,10)
#获取的数据是[5,6,7,8,9]
语法3
range(num1,num2,step)
获取一个从num1开始,到num2结束的数字序列(包含num1,但不含num2本身),数字之间的步长,以step为准(step默认为1)
如
range(5,10,2)
#获取的数据是[5,7,9]
(3).变量的作用域
思考
for i in range(5):
print(i)
print(i)
最下面的print语句,能否访问到变量i ?
规范上:不允许
实际上:可以
for 临时变量 in 待处理数据集:
循环满足条件时执行的代码
回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量
为什么是临时的呢?
临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部
如果在for循环外部访问临时变量:
· 实际上是可以访问到的
· 在编程规范上,是不允许、不建议这么做的
解决方法:在for循环之前,提前定义即可
例
i = 0
for i in range(5):
print(i)
print(i)
(4).for循环的嵌套
for 临时变量 in 待处理数据集(序列):
循环满足条件应做的事情1
循环满足条件应做的事情2
循环满足条件应做的事情n
for 临时变量 in 待处理数据集(序列):
循环满足条件应做的事情1
循环满足条件应做的事情2
循环满足条件应做的事情n
(5).for循环练习
str = "ithema is a brand of itcast"
count = 0
for i in str:
if(i == "a"):
count+=1
print(f"{str}中共含有:{count - 1}个字母a")
for i in range(1,10):
for j in range(1,i + 1):
print(f"{j} * {i} = {j * i}\t", end='')
print()
4.continue和break关键字控制循环
(1).continue
continue关键字用于:中断本次循环,直接进入下一次循环
例
for i in range(1,100):
语句1
continue
语句2
· 在循环内,遇到continue就结束本次循环,进行下一次循环
· 所以,语句2是不会执行的
(2).break
break关键字用于:直接结束循环
for i in range(1,100):
语句1
break
语句2
语句3
· 在循环内,遇到break就结束循环了
· 所以,执行了1次语句1后,直接执行语句3了
(3).注意
continue和break在嵌套循环中,只能作用在所在循环上,无法对上层循环起作用