Python基础教程学习记录:第四章字典的勘误

在学习《Python基础教程》第四章关于字典的内容时,发现一处遗漏,涉及一个例程的代码。原书中可能因为排版原因删除了一行,这可能对初学者造成困扰。本文补充了遗漏的代码,并展示了正确的运行效果。同时,探讨了内部嵌套字典的append操作,目前仍在研究中。

除了看看小甲鱼的视频外,主要依靠《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添加,等知道方法后会在本文续写实现方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值