在或运算符后面有换行符时出现语法错误

Jas*_*enX -2 python

还行吧:

if 'something' in data['meta']:
  <do something>
Run Code Online (Sandbox Code Playgroud)

这是语法错误.为什么?

if ('something' in data['meta']) or
  ('something_else' in data['meta']):
    <do something>
Run Code Online (Sandbox Code Playgroud)

口译员解决了这个问题:

  File "test.py", line 1
    if ('something' in data['meta']) or
                                      ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

Kar*_*rin 10

换行很重要.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>
Run Code Online (Sandbox Code Playgroud)

您可以在PEP 8样式指南中阅读更多相关内容.

小注意:我在多行if语句上添加额外的缩进,以便在条件结束和后续代码开始时轻松区分.这只是偏好,并PEP8提供选择这里.