对于for中的语句与普通的for语句没有区别,else中的语句会在for循环正常执行完成之后再执行(即for不是通过break语句跳出循环而中断的情况),while …else和for…else的情况一样。
for n in range(2,10): for i in range(2,n): if n%i==0: j=n/i print(n,'=',i,'*',j) break else: print(n,'是一个质数')如果在 try 中的语句执行时没有发生异常,Python将执行 else 语句后的语句(如果有 else 的话),然后控制流通过整个 try 语句。
try: 正常的操作 ...................... except(Exception1[, Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码 ...................... else: 如果没有异常执行这块代码e.g.
try: f=open('text.txt','w') f.write("这是一个测试文件,用于测试异常!!") except IOError: print("Error: 没有找到文件或读取文件失败") else: print("内容写入文件成功") f.close()一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。 如果文件打开成功,但后面的语句调用失败,异常处理会立即跳转到except处执行,这样文件关闭就没有机会被执行到。如果将close()语句放到finally子句中去,finally的特点是不管有无异常,都会被执行到。
try: f=open('test.txt','w') for line in f: print(line) except OSError as error: print('出错啦!%s' % str(error)) finally: f.close()关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。
try: with open('test.txt', 'w') as f: for line in f: print(line) except OSError as error: print('出错啦!%s' % str(error))