首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python中断和异常处理

一、break

二、continue

三、异常处理

循环我们已经用的很多了,括while和for...in。while循环在条件不满足时结束,for循环遍历完序列后结束。如果在循环条件仍然满足或序列没有遍历完的时候,想要强行跳出循环,就需要用到break语句

while True:

a = raw_input()

if a == 'end':

break

上面的程序不停接受用户输入。当用户输入一行“end”时,程序结束。

for i in range(10):

a = raw_input()

if a == 'exit':

break

上面的程序接受用户10次输入,当用户输入一行“exit”时,程序提前结束。

break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。

在我们前面写的那个统计分数的程序里,如果发现有成绩不足60分,就不记入总成绩。当然,你可以用if判断来实现这个效果。但我们今天要说另一种方法:continue。

for score in data[1:]:

point = int(score)

if point

continue

sum += point

注意:无论是continue还是break,其改变的仅仅是当前所处的最内层循环的运行,如果外层还有循环,并不会因此略过或跳出。

在程序运行时,如果我们的代码引发了错误,python就会中断程序,并且输出错误提示。

比如我们写了一句:

print int('0.5')

运行后程序得到错误提示:

Traceback (most recent call last):

File "C:/Python27/test.py", line 1, in

print int('0.5')

ValueError: invalid literal for int() with base 10: '0.5'

意思是,在test.py这个文件,第1行,print int('0.5')这里,你拿了一个不是10进制能够表示的字符,我没法把它转成int值。

上面的错误可以避免,但在实际的应用中,有很多错误是开发者无法控制的,例如用户输入了一个不合规定的值,或者需要打开的文件不存在。这些情况被称作“异常”,一个好的程序需要能处理可能发生的异常,避免程序因此而中断。

例如我们去打开一个文件:

f = file('non-exist.txt')

print 'File opened!'

f.close()

假如这个文件因为某种原因并没有出现在应该出现的文件夹里,程序就会报错:

IOError: [Errno 2] No such file or directory: 'non-exist.txt'

程序在出错处中断,后面的print不会被执行。

在python中,可以使用try...except语句来处理异常。做法是,把可能引发异常的语句放在try-块中,把处理异常的语句放在except-块中。

把刚才那段代码放入try...except中:

try:

f = file('non-exist.txt')

print 'File opened!'

f.close()

except:

print 'File not exists.'

print 'Done'

当程序在try内部打开文件引发异常时,会跳过try中剩下的代码,直接跳转到except中的语句处理异常。于是输出了“File not exists.”。如果文件被顺利打开,则会输出“File opened!”,而不会去执行except中的语句。

但无论如何,整个程序不会中断,最后的“Done”都会被输出。

在try...except语句中,try中引发的异常就像是扔出了一只飞盘,而except就是一只灵敏的狗,总能准确地接住飞盘。

以上

每天用一点时间,练习并写出练习过程

这样是对于学习的一个及时反馈

重在坚持!

/提供简单/方便/的练习手本/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180327A1VYFW00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券