Python-从字典列表中检索信息&;语法错误

Python-从字典列表中检索信息&;语法错误,python,dictionary,Python,Dictionary,我正试图用Python开发一个“简单”的字典/数据库,它将从十个列表中检索一个名称,并提供所需的信息。 i、 e.输入为“John phone”;输出为“John的电话号码是0401” 除了完全停留在特定信息的检索上之外,python还突然在name=raw_输入行上给了我一个语法错误 以下是我保存为“朋友”的文件: #/usr/bin/python 朋友={'John':{'phone':'0401', ‘生日’:‘7月31日’, “地址”:“英国”, “利益”:[a”,“b”,“c']},

我正试图用Python开发一个“简单”的字典/数据库,它将从十个列表中检索一个名称,并提供所需的信息。 i、 e.输入为“John phone”;输出为“John的电话号码是0401”

除了完全停留在特定信息的检索上之外,python还突然在name=raw_输入行上给了我一个语法错误

以下是我保存为“朋友”的文件:

#/usr/bin/python
朋友={'John':{'phone':'0401',
‘生日’:‘7月31日’,
“地址”:“英国”,
“利益”:[a”,“b”,“c']},
“哈利”:{“电话”:“0402”,
‘生日’:‘8月2日’,
'地址':'匈牙利',
“兴趣”:['d','e','f']}
name=原始输入('您在找谁?')
如果在朋友中输入姓名:
print friends[姓名]“”的电话号码是:“['phone']
#这条线我还没有测试过
#所以我有一个很大的预感,这是行不通的
其他:
打印“无数据”
这就是它给我的错误:

$。/朋友
文件“/朋友”,第11行
name=原始输入('您在找谁?')
^
SyntaxError:无效语法
请注意,几小时前,当我使用imac上的终端处理同一个文件时,并没有发生这种情况。我没有改变那句台词,我完全不明白为什么它会被渲染

  • 在我电脑的cygwin或另一台借来的mac电脑上也无法工作
  • 是的,我已经在终端中输入了chmod+x个朋友

这可能是最简单、最愚蠢的事情,我可能完全忽略了什么,或者不小心碰上了钥匙(现在是凌晨1点……这将在周一到期……),但任何帮助都将不胜感激

打印消息的行中有语法错误,但忘记缩进消息(这在python中不是可选的!)

以下是一些固定版本:

print name + "'s phone number is: " + friends[name]['phone']
print "%s's phone number is: %s" % (name, friends[name]['phone'])

其他行都很好,因此您得到的错误非常奇怪。

您在打印消息的行中有语法错误,并且忘记了缩进消息(这在python中不是可选的!)

以下是一些固定版本:

print name + "'s phone number is: " + friends[name]['phone']
print "%s's phone number is: %s" % (name, friends[name]['phone'])
其他行都非常好,因此您得到的错误非常奇怪。

原始输入()行在这里工作正常

“不确定”行出现语法错误。可以这样读:

print name + "'s phone number is: " + friends[name]['phone']
您还可以使用格式字符串:

print "%s's phone number is: %s" % (name, friends[name]['phone'])
如果
块:

if name in friends: 
    print "%s's phone number is: %s" % (name, friends[name]['phone'])
else: 
    print 'no data'
否则,直接从您的帖子复制/粘贴后,您的代码对我有效。

此处的
raw\u input()
行工作正常

“不确定”行出现语法错误。可以这样读:

print name + "'s phone number is: " + friends[name]['phone']
您还可以使用格式字符串:

print "%s's phone number is: %s" % (name, friends[name]['phone'])
如果
块:

if name in friends: 
    print "%s's phone number is: %s" % (name, friends[name]['phone'])
else: 
    print 'no data'

否则,在直接从您的帖子复制/粘贴后,您的代码对我有效。

我几乎可以肯定您的代码中(在其中一个文件上)的某个地方缺少
{
]
。无论如何,还有另一个语法错误,不是在这一行上,它通常指向不平衡的括号和/或大括号。但是在这个代码示例中,这很好。但是您确实有另一个问题。您的第一个print语句将无法工作,“phone”不能以这种方式访问,更不用说缩进了。如果您想以不同的方式访问它,请查看newer.format()对于python中的字符串。旁注:如果您只是在学习python,我建议使用带有语法检查的编辑器。根据我的经验,我首选的混合是+,这种表示有效行的语法错误通常意味着您在相邻行上有语法错误,这使得python将指示的行解释为多行表达式的一部分我几乎可以肯定你的代码中(在其中一个文件上)的某个地方缺少了
{
]
。无论如何,还有另一个语法错误,不是在这一行上,它通常指向不平衡的括号和/或大括号。但是在这个代码示例中,这很好。但是您确实有另一个问题。您的第一个print语句将无法工作,“phone”不能以这种方式访问,更不用说缩进了。如果您想以不同的方式访问它,请查看newer.format()对于python中的字符串。旁注:如果您只是在学习python,我建议使用带有语法检查的编辑器。根据我的经验,我首选的混合是+,这种表示有效行的语法错误通常意味着您在相邻行上有语法错误,这使得python将指示的行解释为多行表达式的一部分锡安。非常感谢你的帮助-就像我说的,半睡半醒,没有看到丢失的结尾。}。还有@lunixbochs你的“如果”块起作用了!谢谢,谢谢:)非常感谢你的帮助-就像我说的,半睡半醒,没有看到丢失的结尾。}。还有@lunixbochs你的“如果”块起作用了!谢谢,谢谢:)