当前位置: 首页 > 后端技术 > Python

Python教程分享Python系列之循环结构

时间:2023-03-26 16:23:30 Python

优秀程序员Python培训分享Python系列之循环结构,应用场景:我们在写程序的时候,肯定会遇到需要反复执行某个或某个语句的场景某些说明。例如,用程序控制机器人踢足球。如果机器人拿着球,还没有进入射门范围,那么我们就要时刻发出指令,让机器人向着球门移动。在这个场景中,将机器人移向目标是一个需要重复的动作。当然,这里会用到上节课讲过的分支结构来判断机器人是否持球,是否在射门范围内。再举个简单的例子,如果我们要每1秒在屏幕上打印“hello,world”,持续打印一个小时,一定不能直接写print('hello,world')的代码3600次,这里也需要一个循环结构。循环结构是一种控制程序中某条或某条指令重复执行的结构。Python中有两种构造循环结构的方法,一种是for-in循环,另一种是while循环。for-in循环如果明确知道循环执行次数,我们推荐使用for-in循环,比如计算1到100的和,即。"""使用for循环实现1~100求和Version:0.1Author:LuoHao"""total=0forxinrange(1,101):total+=xprint(total)需要说明的是上面代码中的range(1,101)可以用来构造一个从1到100的范围,当我们把这样一个范围放在for-in循环中时,我们可以通过前面的循环变量依次取1到100的整数X。当然range的用法是非常灵活的。下面给出一个例子:·range(101):可以用来生成一个0到100的整数,需要注意的是不能取101。·range(1,101):可用于生成1到100之间的整数,相当于前面是闭区间,后面是开区间。·range(1,101,2):可用于生成从1到100的奇数,其中2为步长,即每次递增的值。·range(100,0,-2):可用于生成从100到1的偶数,其中-2为步长,即每个数递减的值。知道了这一点,我们可以使用下面的代码对1到100之间的偶数求和。"""用for循环实现1到100之间的偶数求和版本:0.1作者:罗浩"""total=0forxinrange(2,101,2):total+=xprint(total)whileloopif构造一个不知道具体循环次数的循环结构,我们推荐使用while循环。while循环通过可以生成或转换bool值的表达式来控制循环。如果表达式的值为真,则循环继续;如果表达式的值为False,则循环结束。下面通过一个“猜数字”的小游戏来看看while循环的使用方法。猜数字游戏的规则是:电脑产生一个1到100之间的随机数,玩家输入自己猜的数字,电脑给出相应的提示信息(大、小或猜对),若玩家猜对数,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。"""猜数字游戏版本:0.1作者:罗浩"""importrandomanswer=random.randint(1,100)counter=0whileTrue:counter+=1number=int(input('请输入:'))ifnumberanswer:print('smaller')else:print('恭喜,你猜对了!')breakprint(f'你总共猜了{counter}次')上面代码中的breakandcontinue,whileTrue用来构造一个条件永远为真的循环,也就是说如果不做特殊处理,循环不会结束,也就是常说的“死循环”。为了在用户猜对数字时退出循环结构,我们使用了break关键字,用于提前结束循环。需要注意的是break只能终止它所在的循环,在使用嵌套循环结构时需要注意。在下面的示例中,我们将讨论什么是嵌套循环结构。除了break,还有一个关键字是continue,可以用来放弃本次循环的后续代码,直接让循环进入下一轮。嵌套循环结构与分支结构一样,循环结构也可以嵌套,也就是说,循环结构也可以在循环中构造。下面的例子演示了如何通过嵌套循环输出一张乘法表(九九表)。"""打印乘法表版本:0.1作者:罗浩"""foriinrange(1,10):forjinrange(1,i+1):print(f'{i}*{j}={i*j}',end='\t')print()显然,在上面的代码中,外层循环用来控制一共9行的输出,而内层循环用来控制每一行将输出多少列。内循环输出的是九十九表的一行中的所有列,所以当内循环完成后,有一个print()来达到对输出进行换行的效果。循环举例例1:输入一个正整数,判断是否为素数。提示:素数是指大于1且只能被1和它本身整除的整数。"""输入正整数判断是否为素数版本:0.1作者:罗浩"""num=int(input('请输入正整数:'))end=int(num**0.5)is_prime=Trueforxinrange(2,end+1):ifnum%x==0:is_prime=Falsebreakifis_primeandnum!=1:print(f'{num}isprime')else:print(f'{num}isnotPrimenumber')例2:输入两个正整数,计算它们的最大公约数和最小公倍数。提示:两个数的最大公约数是两个数的公因数中最大的数;两个数的最小公倍数是能同时被两个数整除的最小数。"""输入两个正整数,计算它们的最大公约数和最小公倍数版本:0.1作者:罗浩"""x=int(input('x='))y=int(input('y='))ifx>y:x,y=y,x#Python可以用这个方法交换factorinrange(x,0,-1)的两个变量的值:ifx%factor==0andy%factor==0:print(f'{x}和{y}的最大公因数是{factor}')print(f'{x}和{y}的最小公倍数是{x*y//factor}')break简单总结学习Python中的分支结构和循环结构,我们可以解决很多实际问题。通过本课的学习,你应该已经知道可以使用for和while关键字来构造循环结构。如果知道循环次数,我们通常使用for循环;如果无法确定循环次数,我们可以使用while循环。您还可以在循环中使用break来提前结束循环。