> 文章列表 > Python从入门到精通第3天(循环结构的使用)

Python从入门到精通第3天(循环结构的使用)

哎呀!今天咱们终于要揭开Python循环结构的神秘面纱了!循环结构,简单概括就是让程序重复执行某些代码的魔法,比如你点了个外卖,手机一直在“刷新”等骑手接单,这不就是循环嘛!Python有两种循环:for-in循环和while循环。for-in适合明确知道循环次数的情况,比如计算1到100的和,代码简单暴力,一气呵成!而while循环适合“我不知道什么时候结束,但条件满足了我就继续”的场景,比如猜数字小游戏,你得一直猜到对了为止。还有两个小帮手break和continue,break是说“别玩了,走人!”而continue是“这次不玩了,下回再说!”

Python从入门到精通第3天(循环结构的使用)

循环结构

  • for-in循环
  • while循环
  • break和continue关键字
  • 练习

在写程序的时候,一定会遇到需要重复执行某条或某些指令的场景,例如用程序控制机器人踢足球,如果机器人持球而且还没有进射门范围,那么我们就要一直发出让机器人向球门方向移动的指令。这个场景中,让机器人向球门方向移动就是一个需要重复的动作。

循环结构就是程序中控制某条或某些指令重复执行的结构,在Python中构造循环结构有两种做法,一种是for-in循环,一种是while循环。

for-in循环

如果明确的知道循环执行的次数或者要对一个容器进行迭代(后面会讲到),那么我们推荐使用for-in循环,例如下面代码中计算1~100求和的结果:


# 求1~100的和# 定义一个求和的变量
num = 0# 这里的range()函数包头不包尾,且从0开始累加1
# 跟数学里面的取值范围[0,101)有点相似for i in range(101):num += iprint('求的和为:',num)

当然我们的range函数还有给定步长进行累加的功能,跟数学的等差数列有点相似,步长就相当于等差数列的d。例如下面求1~100的奇数的和:

'''求1~100的奇数的和'''# 给定一个求和的变量
sum = 0for i in range(101):# 判断是否为奇数,通过取模如果余数为0则为偶数# 余数不为0则为奇数,此时if语句才能执行# 当然我们这里也可以将if语句改为  if i % 2 != 0:if i % 2:sum += iprint('所有的奇数和为:',sum)

while循环

如果要构造不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过一个能够产生或转换出bool值的表达式来控制循环,表达式的值为True则继续循环;表达式的值为False则结束循环。

我们可以通过下面的猜数字的游戏来说明一下while循环:

'''
猜数字的小游戏
'''# 定义一个开关使用布尔值进行定义
b = True# 定义一个需要猜的值
c = 48while b:# 通过键盘输入猜的数字a = int(input('请输入一个0~100的数字:'))if a == c:print('恭喜您猜对了!')b = Falseelif a > c:print('您输入的数偏大哦!')elif a < c:print('您输入的数偏小哦!')

break和continue关键字

break关键字来提前终止循环,需要注意的是break只能终止它所在的那个循环,这一点在使用嵌套的循环结构需要引起注意。除了break之外,还有另一个关键字是continue,它可以用来放弃本次循环后续的代码直接让循环进入下一轮。例如:

'''
测试break和continue的使用
'''for i in range(10):if i == 3:print('此时我会执行continue语句跳过本次循环')continueelif i == 8:print('此时我会执行break语句,中止程序')breakprint(i)

和分支结构一样,循环结构也是可以嵌套的,也就是说在循环中还可以构造循环结构。下面的例子演示了如何通过嵌套的循环来输出一个九九乘法表:

'''
打印九九乘法表
'''
for x in range(1,10):for y in range(1,x+1):print(f'{y}*{x} = {x*y}'