【python入门第二十天】python流程控制-循环控制

循环控制

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。Python用关键字for和while来进行循环控制,但是没有其它语言的do…while语句(在Java和PHP中都有do while)。

while循环

while循环语句的控制结构图如下所示:
在这里插入图片描述
while 判断表达式:
内部代码块
接下来看一个具体的案例,求1-100之间的总和

n = 100
sum = 0
counter = 1
while  counter<=n:
		 sum = sum + counter				
		 counter += 1
print("1到%d之和为:%d"	%(n,sum))

通常在循环条件中,会设置退出条件,防止程序死循环

while True:
	s = input("what's you name:")
	print("you	name is %s"%s)
print("bye")

这个程序永远也不会打印bye。

while的else从句:

while循环还可以增加一个else从句。当while循环正常执行完毕,会执行else语句。注意else与while平级的缩进方式!

number = 10
i = 0
#i = 11
while i < number:
	print(i)
	i += 1
else:
	print("执行完毕!")

如果是被break等机制强制提前终止的循环,不会执行else语句。

number = 10
i = 0
while i < number:				
       print(i)				
       i += 1				
       if i == 7:
       	  break				
else:				
       print("执行完毕!")

for循环

虽然与while一样都是循环的关键字,但for循环通常用来遍历可迭代的对象,如一个列表或者一个字典。其一般格式如下:

for <variable> in <sequence>:
	 <statements>
for...in....:属于固定套路
sum = 0
for x in[1,2,3,4,5,6,7,8,9,10]:
	sum = sum + x
print(sum)

循环的嵌套

if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。
#这是一个判断质数的程序
#一个数,如果只有1和它本身两个因数,这样的数叫做质数(或素数)

for n in range(2,100):
	for x in range(2,n):
		 if n %x == 0:
		 	print(n,'等于',x,'*',n//x)
		 	break
		 	else:								
		 	     #循环中没有找到元素
		 	     print(n,'是质数')
		 	     #print(n,end=',')

break语句

想在循环过程中退出循环,怎么办?用break语句!
break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。
Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

for letter in 'Hello world':		#第一个实例
	if letter == 'r':
		break
	print('当前字母为:',letter)
	--------------------------------------------		
var = 10					#第二个实例
while var > 0:																	
         print('当前变量值为:',var)
         var -= 1
         if	var == 5:
         	break

continue语句

与break不同,continue语句用于跳过当前循环的剩余部分代码,直接开始下一轮循环。它不会退出和终止循环,只是提前结束当前轮次的循环。同样的,continue语句只能用在循环内。

for letter in 'Hello world':		#第一个实例		
	 if letter == 'o':					#字母为o时跳过输出
	 	continue			
	 print('当前字母:',letter)
	 -------------------------------------------------------
	 var = 10				            #第二个实例
	 while var > 0:
	 	var -= 1			
	 	if var == 5:				    #变量为5时跳过输出
	 	   continue			
	 	print('当前变量值:',var)

刚才前面跟大家说过,python中的break只能跳出当前层的循环,无法全部跳出。那如果有这需求怎么办?
设置flag

flag = False				#用于控制外层循环的标志
for i in range(10):
	 if flag:					#当flag被内层循环设置为True的时候,跳出外层循环								     
	    break				
	    for j in range(10):
	 		if j==7:
	 		  flag = True												
	 		  break								
	 		print(i,j)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落羽凉笙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值