600X笔记(week-4 调试、断言和异常)
来源:互联网 发布:支配集网络matlab算法 编辑:程序博客网 时间:2024/06/05 08:01
600x感觉讲得更偏向于导论,这么快调试、断言和异常了。
嗯。。让我想想廖大的教程顺序应该是先数据类型,条件判断,循环,函数(函数的参数),递归函数,高级特性(然后里面有生成器、迭代器),高阶函数(闭包、装饰器、偏函数),模块,面对对象编程(类和实例),面对对象高级编程(定制类),然后再到调试、断言异常。
这里直接上几个代码加深印象:
def FancyDivide(numbers, index): try: try: denom = numbers[index] for i in range(len(numbers)): numbers[i] /= denom except IndexError as e: FancyDivide(numbers, len(numbers) - 1) #会再一次调用Finally else: #当上一个语言块没有被执行时执行 print ("1") finally: print ("0") except ZeroDivisionError as e: print ("-2")
上式的FancyDivide([0, 2, 4], 4)
答案是1,0,0
,注意顺序:是先输出else
的1,然后输出因错误返回的Finally
,最后输出最外层的Finally
。
#最初输出错误含'Hello'def FancyDivide1(list_of_numbers, index): try: try: denom = list_of_numbers[index] for i in range(len(list_of_numbers)): list_of_numbers[i] /= denom finally: raise Exception("Hello") except Exception as e: print(e)#最后输出错误含'Hello'def FancyDivide2(list_of_numbers, index): try: try: raise Exception("Hello") finally: denom = list_of_numbers[index] for i in range(len(list_of_numbers)): list_of_numbers[i] /= denom except Exception as e: print(e)
使用FancyDivide([0, 2, 4], 0)
比较上面代码可以看出except
不是叠加,只接受最后一个错误。
阅读全文
0 0
- 600X笔记(week-4 调试、断言和异常)
- 笔记:异常、日志、断言和调试
- 异常、日志、断言和调试
- 异常、断言、日志和调试
- 【java核心技术笔记】异常、日志、断言和调试
- Java复习笔记---异常,断言,日志和调试
- Udacity调试课笔记之断言异常
- 11 异常, 日志, 断言和调试
- Java的异常、断言、日志和调试
- Java04异常、断言、日志和调试
- [JAVA基础]异常、断言、日志和调试
- 《Java核心技术(第八版)》笔记之第11章异常、断言和调试
- Java复习笔记(8)——异常、断言、日志和调试
- 600X笔记(week-2 简单算法与函数)
- 600x笔记(week-3 递归与对象)
- [core java学习笔记][第十一章异常断言日志调试]
- 第11章 异常、断言、日志和调试
- java-异常/断言/日志/调试
- Win7 U盘安装Ubuntu16.04 双系统详细教程
- MySQL 事务没有提交导致 锁等待 Lock wait timeout exceeded
- Unity Shader入门精要学习笔记
- 13.1 Copy, Assign, and Destroy
- linq to sql更改数据
- 600X笔记(week-4 调试、断言和异常)
- 代理模式
- sxt6.27
- PAT 甲级 1007. Maximum Subsequence Sum
- 内部排序—堆排序
- java中异常处理机制
- C#中SubString ()的用法 (截取字符串)
- HDU 4553 约会安排 (线段树 -- 区间合并(多种优先级的区间合并) )
- Java——SVN