Python语法基础之. Task09 else 与 with 语句(1217)

mac2024-11-12  10

Python基础—— Task09 else 与 with 语句

1. else语句1. 1 while … else 语句1.2 for … else 语句1.3 try …. except … else 语句 2. with 语句

1. else语句

1. 1 while … else 语句

语法格式:

while <判断语句><执行代码> else: <执行代码>

sample:

count = 0 while count < 5: print("%d is less than 5" % count) count = count + 1 else: print("%d is not less than 5" % count) # 0 is less than 5 # 1 is less than 5 # 2 is less than 5 # 3 is less than 5 # 4 is less than 5 # 5 is not less than 5

1.2 for … else 语句

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

sample:

for num in range(10, 20): # 迭代 10 到 20 之间的数字 for i in range(2, num): # 根据因子迭代 if num % i == 0: # 确定第一个因子 j = num / i # 计算第二个因子 print('%d 等于 %d * %d' % (num, i, j)) break # 跳出当前循环 else: # 循环的 else 部分 print(num, '是一个质数') # 10 等于 2 * 5 # 11 是一个质数 # 12 等于 2 * 6 # 13 是一个质数 # 14 等于 2 * 7 # 15 等于 3 * 5 # 16 等于 2 * 8 # 17 是一个质数 # 18 等于 2 * 9 # 19 是一个质数

1.3 try …. except … else 语句

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

语法格式:

try: <被检测的程序代码> expect<异常类型>: <异常处理的程序代码> else: <正常处理的程序代码>

换句话说:

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

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

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

Sample1:

try: fh = open("testfile", "w") fh.write("这是一个测试文件,用于测试异常!!") except IOError: print("Error: 没有找到文件或读取文件失败") else: print("内容写入文件成功") fh.close() # 内容写入文件成功

sample2:

try: x=int(input('请输入数据1:')) y=int(input('请输入数据2:')) z=x/y except ValueError: print('应全部输入数据值') except ZeroDivisionError: print("除数不能为零") except NameError: print('变量不存在') else: print("最终结果为:",z)

2. with 语句

一些对象定义了标准的清理行为,无论系统是否成功的使用了它,一旦不需要它了,那么这个标准的清理行为就会执行。

关键词 with 语句就可以保证诸如文件之类的对象在使用完之后一定会正确的执行它的清理方法。

语法结构:

try: <被检测的程序代码> expect<异常类型>: <异常处理的程序代码> finally: <正常处理的程序代码>

sample1:

try: x=int(input('请输入数据1:')) y=int(input('请输入数据2:')) z=x/y except ValueError: print('应全部输入数据值') except ZeroDivisionError: print("除数不能为零") except NameError: print('变量不存在') else: print("最终结果为:",z) finally: print("END")

sample2:

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

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

try: with open('myfile.txt', 'w') as f: for line in f: print(line) except OSError as error: print('出错啦!%s' % str(error)) # 出错啦!not readable
最新回复(0)