我正在尝试学习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
答案 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