前面我们介绍了分支结构, 每当需要判断时,就需要用到if
分支结构:
单分支结构、多分支结构、三目运算符(单分支结构的变形)、嵌套分支
作用:判断,做出选择
这期我们来介绍一下循环结构,每当用到循环时,就需要用到for或while
循环结构:
for-in循环(for循环)、while循环、range函数、break、continue
作用:解决重复性问题
python中循环分为for循环和while循环
python中涉及的循环关键字:for in while break continue
在day05
下创建一个名为09-循环结构
的代码文件。
前面,我们做过这样一道题:判断153、471、499这三个数字是否是水仙花数,所谓水仙花数是指一个三位数,其各位数字⽴方和等于该数本身。例如:153是⼀个⽔仙花数,因为 1³ + 5³ + 3³ 等于 153
num1 = 153
unit = num1 % 10
decade = num1 // 10 % 10
hundred = num1 // 100
if unit ** 3 + decade ** 3 + hundred ** 3 == num1:
print(f'{num1}是水仙花数')
else:
print(f'{num1}不是水仙花数')
如果让你判断的数字再多一点,一个一个的写是不是很费劲?求出一个范围内所有的水仙花数?
num = 153
num = 471
num = 499
……
循环结构作用:可以让你重复的执行某一类工作
进入for-in循环前,我们先来了解一下range方法
day05
下创建一个名为10-range方法
的代码文件。range
,是一个方法,左闭右开区间
,能根据提供的数字,生成一个有限个数整数的容器
。例如:
range(1,101)----> 生成了一个有1-100这100个元素的容器
range(start, stop, step)
start:
开始参数,默认为0,可以省略不写;
stop:
结束参数(必须赋值的一个参数)
step:
为步长,决定下一个数字获取谁,默认为1,可以省略不写 ;
如果step出现,start就不能够隐藏不写了 ;
如果step >= 1,start必须小于stop;如果step <= -1,start必须大于stop
下一次产生的数字 = 本次数字 + step(步长)
range(101) --> 表示生成一个0-100的整数容器
range(11,21) --> 表示生成一个11-20的整数容器
range(11,21,2) --> 表示生成11-20中所有奇数的整数容器。
range(10,-11,-1) --> 表示生成10 ~ -10之间的整数容器
range(1,101,2) --> 生成1-100之间所有奇数整数的容器
day05
下创建一个名为11-for-in循环
的代码文件。for-in 循环
语法:for 变量 in 容器:
代码块
举例:
循环输出1-100这100个数字。
for i in range(1, 101):
print(i)
容器中元素是固定好的,个数是有限的。
1、for 循环
根据容器中元素个数
确定循环次数
,每循环一次变量就会从容器中挨个获取一个元素,直到循环次数达到容器中元素个数,停止。
2、一般for循环被用作有限次数循环
3、range
,是一个方法
,左闭右开区间
,能根据提供的数字,生成一个有限个数整数
的容器
。
day05
下创建一个名为12-for-in循环练习
的代码文件。我们下期和while循环的练习题一起来说day05
下创建一个名为13-while循环
的代码文件。while循环
语法:while条件:
代码块
while循环开始时,先判断条件是否成立,条件成立,执行代码块,不成立,直接结束。
一次循环结束后,再次判断条件是否还成立
案例:
猜数字游戏(又被称为:数字炸弹)
在1-100之间,随机取一个数字,玩家去猜,猜对了接受惩罚;猜大了,提示再小一点;猜小了,提示再大一点
from random import randint
# random:随机模块
# randint方法:能够从指定范围(闭区间)产生一个整数
number = randint(1, 100)
print(number)
flag = True
while flag:
num = int(input('请输入你猜的数字:'))
if num > number:
print('再小一点')
elif num < number:
print('再大一点')
else:
print('猜对了,游戏结束,接受惩罚')
flag = False
PS:
1、while循环既可以用作有限次数循环,也可用作无限次数循环,但是程序不允许出现无限次循环(死循环)
2、一般for循环被用作有限次数循环,while循环被用作不确定次数的循环
在day05
下创建一个名为14-while循环练习
的代码文件。下期和for-in循环练习来讲
现在我们接着来介绍循环关键字中的break和continue
day05
下创建一个名为15-break和continue
的代码文件。break:
“打破”,只能用于循环中,break一旦被触发,直接结束其所在循环
continue:
只能用于循环中,continua一旦被触发,直接结束其所在循环的本次循环,进入下一次循环
for _ in range(1, 3):
# 当for循环的作用仅仅是循环次数时,变量可以使用——代替
for i in range(1, 6):
if i == 4:
print('======')
break
print('******')
else:
print(i)
for _ in range(1, 3):
# 当for循环的作用仅仅是循环次数时,变量可以使用_代替
for i in range(1, 6):
if i == 4:
print('======')
continue
print('******')
else:
print(i)
上述代码体现了嵌套循环,for-in循环和while循环是允许相互嵌套的