Task09:else 与 with 语句

mac2024-05-07  28

Task09:else 与 with 语句

while … else 语句for … else 语句try …. except … else 语句简洁的 with 语句参考资料

while … else 语句

在 while … else 在条件语句为 false 时执行 else 的语句块。 语法格式如下:

while <expr>: <statement(s)> else: <additional_statement(s)>

例子

count = 0 while count < 5: print (count, " 小于 5") count = count + 1 else: print (count, " 大于或等于 5") # 结果(注意左闭右开) 0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5

for … else 语句

for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。

sites = ["小米", "华为","LSGO","NCEPU"] for site in sites: if site == "LSGO": print("棒!") break print("循环数据 " + site) else: print("没有循环数据!") print("完成循环!") # 结果 循环数据 小米 循环数据 华为 棒! 完成循环! >>>

try …. except … else 语句

如果在 try 子句执行时没有发生异常,Python将执行 else 语句后的语句(如果有 else 的话),然后控制流通过整个 try 语句。

try: 正常的操作 ...................... except: 发生异常,执行这块代码 ...................... else: 如果没有异常执行这块代码

使用 except 而不带任何异常类型,这不是一个很好的方式,我们不能通过该程序识别出具体的异常信息,因为它捕获所有的异常。

try: 正常的操作 ...................... except(Exception1[, Exception2[,...ExceptionN]]]): 发生以上多个异常中的一个,执行这块代码 ...................... else: 如果没有异常执行这块代码

try except 语句还有一个可选的else子句,如果使用这个子句,那么必须放在所有的except子句之后。这个子句将在try子句没有发生任何异常的时候执行。

for arg in sys.argv[1:]: try: f = open(arg, 'r') except IOError: print('cannot open', arg) else: print(arg, 'has', len(f.readlines()), 'lines') f.close()

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到的、而except又没有捕获的异常。 异常处理并不仅仅处理那些直接发生在try子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。例如:

>>>def this_fails(): x = 1/0 >>> try: this_fails() except ZeroDivisionError as err: print('Handling run-time error:', err) Handling run-time error: int division or modulo by zero

简洁的 with 语句

一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。 关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。 对比:

try: f = open('myfile.txt', 'w') for line in f: print(line) except OSError as error: print('出错啦!%s' % str(error)) finally: f.close() # 出错啦!not readable try: with open('myfile.txt', 'w') as f: for line in f: print(line) except OSError as error: print('出错啦!%s' % str(error)) # 出错啦!not readable

这两段代码都可以使 执行完毕后,就算在处理过程中出问题了,文件 f 总是会关闭。

参考资料

LSGOGroup 老马的程序人生FishC.comRunoob.comhttps://blog.csdn.net/qq_40946639/article/details/102673760
最新回复(0)