没关系:
if 'something' in data['meta']:
<do something>
这是语法错误。为什么呢?
if ('something' in data['meta']) or
('something_else' in data['meta']):
<do something>
口译员解决了这个问题:
File "test.py", line 1
if ('something' in data['meta']) or
^
SyntaxError: invalid syntax
答案 0 :(得分:9)
换行很重要。 Python需要知道如何解析事物。对于第二个代码片段,您将if
分成两行,而Python并不喜欢它,因为它看起来像一个单独的命令。跨越多行的两种常用方法是使用反斜杠或括号。例如,这两个都是有效的语法:
if ('something' in data['meta']) or \
('something_else' in data['meta']):
<do something>
if (('something' in data['meta']) or
('something_else' in data['meta'])):
<do something>
您可以在PEP 8 Style Guide中了解更多信息。
小注释:我在多行if语句上添加额外的缩进,以便在条件结束时和后续代码开始时轻松区分。它只是偏好,而PEP8提供了选项here。
答案 1 :(得分:4)
这是一个语法错误,因为Python期望您的if
语句在该行结束,并且:
。
然而,如果您要么
,那么这个布尔值的表达式可以继续到另一行\
)字符因此,使用
if ('something' in data['meta']) or \
('something_else' in data['meta']):
<do something>
或首选表格
if (('something' in data['meta']) or
('something_else' in data['meta'])):
<do something>
PEP 8 -- Style Guide for Python Code says:
首选包装长行的方法是在括号,括号和大括号内使用 Python隐含的行延续。长行可以在多行中分解通过将表达式包装在括号中。这些应该优先使用反斜杠来继续行。
答案 2 :(得分:0)
从&#34;或&#34;中断线应该用括号括起来:
if ('something' in data['meta'] or
'something_else' in data['meta']):
<do something>
答案 3 :(得分:-1)
尝试这样的代码:
if ('something' in data['meta']) or ('something_else' in data['meta']):
<do something>