python跳出循环控制_python 循环控制 - 刘江的python教程

循环控制

阅读: 14585

评论:1

很多时候,我们在处理业务的时候,并不是如果怎么样就怎么样,而是一直做某件事,直到全部做完,甚至永远做不完.....

循环控制,就是让程序循环运行某一段代码直到满足退出的条件,才退出循环。

Python用关键字for和while来进行循环控制,但是没有其它语言的do...while语句。

while循环

while循环语句的控制结构图如下所示:

语法格式:

while 判断表达式:

内部代码块

“while”翻译成中文就是“当...”的意思,while循环用伪代码描述就是“当条件满足的时候,就一直运行while所管理的代码块,当条件不满足的时候,就结束while循环。”看个例子:

n = 100

sum = 0

counter = 1

while counter <= n:

sum = sum + counter

counter += 1

print("1 到%d之和为:%d" % (n,sum))

这段代码其实就是计算1加到100的和。首先初始化了三个变量n,sum和counter,并分别赋值。然后遇到while循环,检测它的判定语句counter是否小于等于n,如果是,则执行while内部的代码,让sum加上当前counter的值,然后counter本身再加上1。执行完毕后,重新回到while的判定语句,再进行一次判定,如果依然满足条件,则继续执行sum加counter,counter自加一。直到条件不再满足时,结束循环。然后最后打印1到100的和为sum。

通常,我们要在循环条件,或循环体内设置退出条件,防止死循环,但有时候也需要无限循环。例如Web服务器响应客户端的实时请求。而下面则是一个没有退出机制的死循环,程序永远不会打印Good bye。

while True: # 表达式永远为 true

s = input("输入点什么吧: ")

print ("你输入的是: ", s)

print ("Good bye!")

while的else从句:

while循环还可以增加一个else从句。当while循环正常执行完毕,会执行else语句。但如果是被break等机制强制提前终止的循环,不会执行else语句。注意else与while平级的缩进方式!

number = 10

i = 0

# i = 11

while i < number:

print(i)

i += 1

else:

print("执行完毕!")

下面是被打断的while循环,else不会执行:

number = 10

i = 0

while i < number:

print(i)

i += 1

if i == 7:

break

else:

print("执行完毕!")

for循环

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

for in :

for ... in ....:属于固定套路。其实我们在前面的章节已经或多或少的介绍过for的用法,尤其是遍历一些数据类型的时候。

sum = 0

for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:

sum = sum + x

print(sum)

for循环的else 子句:

与while一样,for循环也可以有else子句。同样是正常结束循环时,else子句执行。被中途break时,则不执行。

循环的嵌套

if判断可以嵌套,while和for当然也可以嵌套。但是建议大家不要嵌套3层以上,那样的效率会很低。下面是一个嵌套for循环结合else子句的例子:

# 这是一个判断质数的程序

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, ' 是质数')

break语句

通常情况下的循环要么执行出错,要么死循环,要么就只能老老实实等它把所有的元素循环一遍才能退出。如果想在循环过程中退出循环,怎么办?用break语句!

break只能用于循环体内。其效果是直接结束并退出当前循环,剩下的未循环的工作全部被忽略和取消。注意当前两个字,Python的break只能退出一层循环,对于多层嵌套循环,不能全部退出。

for letter in 'Hello world': # 第一个实例

if letter == 'd':

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没有goto语法

前面说了,在嵌套循环中,break只能跳出当前层的循环,无法全部跳出。在C语言中有goto语法,可以实现这一功能,但是Python没有goto。那有需求的时候怎么办呢?设置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)

评论总数: 1

一直有点模糊,看了这个明白多了。感谢博主精彩演绎!

By

了繁精彩   On

2018年10月27日 19:12

回复

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值