给大家讲一个错误叫做键错误KeyError。这个错误经常会出现在什么地方?就是在进行字典取值的时候。这是我的字典,它里面有name、age、gender。现在我在从这个字典当中去取值的时候,dic是字典的名字,方括号当中是键的名字,有name、age和gender。我写了一个name,它会去获取到name。
这个键所对应的值是张三已经答应输出,但是这个时候如果要去获取一个叫dic,dic是什么?字典的名字。如果要去从这个字典当中去找一个叫做score的键,并且去获取它的值,这个时候就会报这样一个错误叫KeyError。为什么?因为在这个字典当中根本就没有一个叫做score这样的键。
所以在进行字典取值的时候,老师建议可以使用下面这种方法叫dic字典的名字点get。get什么?在这里写一个键的名字,写一个键的名字叫score。这个时候如果获取不到的时候,它会给我写个None,但程序不会抛异常,也就说这是这种方式。
还有什么?还有下面的一种方式叫dic.get(),我依然去获取score。但是老师你不是说了吗?如果获取不到,它会给你返回None,对不对?但是后面可以加第二个参数,我给写个60。什么意思?如果从这个上面去获取score,发现score这个键没有,它会使用60去默认填充它的值,看输出的是多少?60。
这个就是KeyError的解决方案。
·第一种,可以去使用这种get方式去取值,取不到它会得None。
·第二种,就是取不到,给你添一个默认值,