错误陷阱 = “用于捕捉错误de 陷阱”
(1) 真正的报错,硬的,一般都是直接退出程序,关机等
(2) 现在多数语言,操作系统,捕捉到错误后,都用 msgbox input 等小盒子困住 错误,报告给玩家
让玩家去解决,而不真正退出。
一 dict的get()和 setdefalut()方法--带默认值
(1)dict.get("key")
(2)dict.setdefault("key"[,default])
>>> dictA={"a":1,"b":2,"c":3}
>>> dictA.get("a")
1
>>> dictA.get("d")
>>> dictA.setdefault("e",5)
5
>>> dictA
{'a': 1, 'b': 2, 'c': 3, 'e': 5}
>>> dictA={"a":1,"b":2,"c":3}
>>> dictA.setdefault("e",5)
5
>>> dictA.setdefault("d")
>>> dictA
{'a': 1, 'b': 2, 'c': 3, 'e': 5, 'd': None}
>>>
二 try except 和 try finally语句
(1)try/except 和 try/finally的作用不同,但一般可以混用
(2)[]内内容可选,但一旦有,次序决不能错
try
[except A: ]
[except B:]
except:
[ else:]
(3)try finally
(4)混用要特别注意次序,不能错
try:
Normal execution block
except A:
Exception A handle
except B:
Exception B handle
except:
Other exception handle
else:
if no exception,get here
finally:
print("finally")
三 assert 语句: 断言
错误断言
assert 判断条件式,False要返回的字符串
语法:没有括号,不是函数或方法
如果为 false 报告false显示的内容,且不执行 代码块 后续内容
同时也起到了防止错误发生的错误陷阱的作用。
>>> assert True ,"123"
>>> assert False,"456"
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
assert False,"456"
AssertionError: 456
>>> strA="123"
>>> assert strA=="123","strA已经发生变化不再等于123"
>>> strA="12345"
>>> assert strA=="123","strA已经发生变化不再等于123"
Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
assert strA=="123","strA已经发生变化不再等于123"
AssertionError: strA已经发生变化不再等于123
>>>