前面我们介绍了分支结构, 每当需要判断时,就需要用到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一旦被触发,直接结束其所在循环的本次循环,进入下一次循环


break

for _ in range(1, 3):
    # 当for循环的作用仅仅是循环次数时,变量可以使用——代替
    for i in range(1, 6):
        if i == 4:
            print('======')
            break
            print('******')
        else:
            print(i)

continue

for _ in range(1, 3):
    # 当for循环的作用仅仅是循环次数时,变量可以使用_代替
    for i in range(1, 6):
        if i == 4:
            print('======')
            continue
            print('******')
        else:
            print(i)

上述代码体现了嵌套循环,for-in循环和while循环是允许相互嵌套的