显然,标题包含无法解释的代码。没有信息的
SyntaxError: invalid syntax
stderr的消息并没有告诉我什么,所以我把它一行一行地扔了,使用:
[dict.get(['val','val','foo'])]
并且后来发现dict.get()
和iterables不能很好地结合在一起。
如果您还没有猜到,我正处于建设学习和娱乐玩具项目的激动人心的领域。这是我的代码:
def wordpoints(word):
points = 0
for char in word:
points += dict.get(char)
return points
这就是我想要的:
def wordpoints(word):
return sum[dict.get(char) for char in word]
为了澄清,dict
在我的代码中被命名为tile_p
,代表平铺点。还有另一个def
查找拼字游戏玩家的字典True|False
会导致MySQL表格,如果cursor.fectchone()
中包含某些内容,则将其传递给此函数。
答案 0 :(得分:2)
使用括号而不是括号来调用函数:
def wordpoints(word):
return sum(dict.get(char) for char in word)
解析器实际上告诉你的不仅仅是“语法无效”:
return sum[dict.get(char) for char in word]
^
SyntaxError: invalid syntax
看到小^
?它指向导致解析失败的令牌。到目前为止,解析器的一切都很好:它看到一个名称(sum
),后跟订阅运算符[]
。在括号内,它需要一个任意表达式。最高dict.get(char)
,这是一个有效的表达式,但是以下标记for
对解析器没有意义 - 因此此时出现语法错误。