从C#到Python:2 运算符、表达式和流程控制
2010-09-30 22:36:47 来源:WEB开发网Python中的while和for循环中支持break和continue语句。break语句用于立刻中止循环,continue语句用于直接进入下一次循环(忽略当前循环的剩余语句)。break和continue语句在C#与Python中的用法是一致的,只用于语句所在的当前循环。如果需要退出一个多重循环,应该使用异常,因为Python中没有提供goto语句。
最后,Python中的循环还支持else语句,它只在循环正常完成后运行(for和while循环),或者在循环条件不成立时立即运行(仅 while循环),或者迭代序列为空时立即执行(仅for循环)。如果循环使用break语句退出的话,else语句将被忽略。下面的代码用于说明 else在循环中的应用(引自《精要参考(第二版)》,有修改)。
1 # while-else
2 while i < 10:
3 i = i + 1
4 else:
5 print 'Done'
6 # for-else
7 for a in s:
8 if a == 'Foo':
9 break
10 else:
11 print 'Not found!'
2.2.3 异常
Python和C#一样支持异常处理,利用try/except/finally结构,可以很方便的捕获异常,同时可以用raise语句手动抛出异常(上述四个异常处理的关键字分别对应C#中的try/catch/finally/throw)。通过except,您可以将try标示的语句中出现的错误和异常捕获,except可以接受参数作为要捕获的异常,如果想要捕获多个异常,可以使用元组(tuple)作为参数。没有参数的except被认为是捕获所有异常。而finally则用来在最后执行一定要运行的代码,例如资源回收。下面是一个简单的例子,来说明Python中的异常处理方式:
1 try:
2 f = open('thefile.txt')
3 s = f.readline()
4 ...
5 except IOError, (errno, strerror):
6 print "I/O error(%s): %s" % (errno, strerror)
7 except ValueError:
8 print "Could not convert data to an integer."
9 except:
10 print "Unexpected error:", sys.exc_info()[0]
11 raise
12 finally:
13 f.close()
更多精彩
赞助商链接