除了看看小甲鱼的视频外,主要依靠《Python基础教程》的第二次修订版本电子书作为主要文字参考书籍,在浏览第四章字典相关内容时,发现书中的一点小遗漏,在此略作补充。
原书4-1例程程序和执行效果预览如下图所示:
图中黄色标注的区域就是遗漏之处,可能是考虑到排版去除了一行代码,但容易对零基础的入门学员产生一定干扰,毕竟Python是很多经管金融方向人员的编程入门语言。
代码缺失的结果如下所示:
补充并适当添加修饰的代码如下:
# 简单数据库
# 使用人名作为键的字典,每个人用另一个字典表示,其键phone和addr分别表示他们的电话号码和地址。
people = {
'Alice':{
'phone':'2341',
'addr':'Foo drive 23'
},
'Beth':{
'phone':'9012',
'addr':'bar street 42'
},
'Cecil':{
'phone':'3158',
'addr':'Baz avenue 90'
}
}
labels = {
'phone':'phone number',
'addr':'address'
}
print('='*50)#通过排列等号获得分界线
name = str(input('Input a name:'))
request = str(input('Phone numer (p) or address (a)?')) #书中缺失的一行代码
if request == 'p':key = 'phone'
if request == 'a':key = 'addr'
if name in people:
print("%s's %s is %s" %(name,labels[key],people[name][key]))
print('='*50)#通过排列等号获得分界线
运行效果如下,与书中完全一致:
个人觉得这个例程还是很有意思的,也值得进一步发散思索,不过我还在思考对于这种内部嵌套的字典如何进行append添加,等知道方法后会在本文续写实现方法。