学习python - 字典

时间:2014-07-11 01:14:40

标签: python-2.7

我正在尝试学习Python 2.7(按照课程),但我一直遇到视频和我的2.7 Python编辑器之间的语法问题。我在整个视频中发现了几个问题,他们使用3.x语法,我必须找到2.x语法才能使它工作。

不确定这是否是同一个问题,但我很难过为什么会收到此错误。

追踪(最近一次通话):   文件“/ home / xxxx / Desktop / Python Training / dictionariesCatalog.py”,第16行,in     print item_catalog(in_var) TypeError:'dict'对象不可调用

代码(根据视频):

item_catalog = {"Blank CD's":7.99,"USB Drives":12.50,"Keyboards":18.99}
for x in item_catalog:
    print x

def exists_in(A,name):
    result = False
    for x in A:
        if x == name:
            result = True
    return result
exit_var = False
while exit_var == False:
    in_var = raw_input("Enter a product to look up its price (or press x to quit) ")
    if exists_in(item_catalog,in_var):
        print "The price of that item is: "
        print item_catalog(in_var)
    if exists_in(item_catalog,in_var) == False and in_var != "x":
        print "That item does not exist!"
    if in_var == "x":
        exit_var = True

1 个答案:

答案 0 :(得分:0)

当您访问dict时,使用方括号[]),而不是括号。

>>> dict_ = {1: 2, 3: 4}
>>> dict_(1)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable
>>> dict_[1] #Works
2
>>> 

以下是您编辑的代码:

item_catalog = {"Blank CD's":7.99,"USB Drives":12.50,"Keyboards":18.99}
for x in item_catalog:
    print x

def exists_in(A,name):
    result = False
    for x in A:
        if x == name:
            result = True
    return result
exit_var = False
while exit_var == False:
    in_var = raw_input("Enter a product to look up its price (or press x to quit) ")
    if exists_in(item_catalog,in_var):
        print "The price of that item is: "
        print item_catalog[in_var]
    if exists_in(item_catalog,in_var) == False and in_var != "x":
        print "That item does not exist!"
    if in_var == "x":
        exit_var = True