Python 中的else
在其他程序语言中,else 似乎只是与 if 关键字有缘分。而与其他的关键字没有联系,不能搭配使用,而在python中,else 除了与 if 匹配外, 还可以与for、while/ try等关键字匹配使用。
for
只有当 for 循环进行完毕时,也就是说 for 循环中没有关键字 break 来终止循环,else 中的代码才能执行,在java 、C++等语言中,我们通常通过一个标示来判断循环有没有执行完,而在Python中,通过 else 代码块可以很简单的实现这个功能,如寻找一个字符串是否在列表中,java 写法如下:
find = ‘Python’ array = ['Beijing', 'Shanghai', 'Wuhan'] found = False for arr in array: if find == arr: print('Found') found = True break if not found: print('Not Found!')
而使用 else 块,则会使得代码更简洁,这里一定要注意,else 需要与 for关键字对齐:
find = 'java' array = ['I', 'LOVE', 'YOU'] for arr in array: if find == arr: print 'Found' break elsle: # else执行 表示没有break语句没有终止循环 print('Not Found!!!')
while
只有当while 循环运行完毕时, 也就是说 while 的循环条件为假而退出,没有关键字 break 来终止循环 while 循环,else 中的代码快才能够运行 这与 for 循环中 else 的用法类似的,如寻找一个字符串是否在一个列表中, java 写法如下:
find = 'Python' array = ['I', 'LOVE', 'yOU'] found = False i = 0 while i < len(array): if find == array[i]: print('Found') found = True break i += 1 if not found: print('Not found!!!')
而使用 else 块,则会使得diamante更简洁:
find = 'java' array = ['I', 'LOVE', 'YOU'] i = 0 while i < len(array): if find == array[i]: print('Found!') break i += 1 else: print('Not found!!')
try
只有当 try 快中的代码没有捕获到任何一种异常时,才执行 else 块中代码,其中的语法结构为:
try: <Code1> except: <Code2> else; <Code3>
当Code1代码执行的过程中捕获到 name 类型的异常时,就会执行 Code2 代码快。如果没有异常,会执行Code3代码块, 注意是没有异常,如果存在异而 except 模块没捕获到,那么 else 代码块中的代码不会执行,同时也要注意, else 代码块中的异常时没有捕获的,这可以应用在读取文件过程中,如果打开文件翊异常(可能有文件不存在等)就执行except中的代码块,若无异常,则执行 else 中的代码块,Python 代码如下:
filename = ‘Python.txt’ try: file = open(filename, 'r') except Exception as error: print('File Open Error', error) else: for line in file: print(line) file.close()
posted on 2019-05-10 18:04 海纳百川_有容乃大 阅读(1081) 评论(0) 编辑 收藏 举报