图灵 《Python基础教程》第2版,代码4-2问题

书上原代码:

=====================================================================================

#使用get()的简单数据库

#这里添加代码清单4-1中插入数据库的代码

labels = {

  'phone':'phone number',

  'addr':'address'

}

name = raw_input('Name: ')

#查找电话号码还是地址?

request = raw_input('Phone number (p) or address (a)? ')

#使用正确的键

key = request #如果请求既不是'p'也不是'a'

if request == 'p' : key = 'phone'

if request == 'a' : key = 'addr'

#使用get()提供默认值:

person = peole.get(name,{})

label = labels.get(key,key)

result = person.get(key,'not available')

print "%s's %s is %s." %(name,label,result)

=====================================================================================

执行结果:

clipboard

 

 

我修改后代码:

=====================================================================================

#!/usr/bin/env python

#-*- encoding:utf-8 -*-

#使用get()的简单数据库

#这里添加代码清单4-1中插入数据库的代码

labels = {

  'phone':'phone number',

  'addr':'address'

}

name = raw_input('Name: ').strip()

#查找电话号码还是地址?

request = raw_input('Phone number (p) or address (a)? ')

#使用正确的键

key = request #如果请求既不是'p'也不是'a'

if request == 'p' : key = 'phone'

if request == 'a' : key = 'addr'

#使用get()提供默认值:

peole = {}

labels = {}

person = ()

person = peole.get(name,{})

label = labels.get(key,key)

result = person.get(key,'not available')

print "%s's %s is %s." %(name,label,result)

=====================================================================================

执行结果:

clipboard[1]

 

问题:

看上面原文代码报错信息是说people是没有定义的,在代码最后几行使用的peole.get(name,{})  labels.get(key,key)     person.get(key,'not available')   用到了字典的get()方法,这里peole、 labels、 person  这3个字典都是没有定义的,使用get方法时报错,所以我在之前加了定义这三个字典。之后就没有报错了

-----------该次代码清单主要是通过get()方法来给空的字典给予初始值----------------

你可能感兴趣的:(python,字典,get())