在一行上写 if 语句是否可以接受?

Is writing an if statement on one line acceptable?

我不确定这个问题是否适合这个社区,因为它更注重意见,所以如果不适合请投票关闭它。

我的问题是关于 Python 中的 if 语句(也许不仅仅是 Python)和样式。写成一行可以接受吗?我不是在谈论 something if condition else something-else 形式的三元运算符,而是当人们写:

if condition: do this

而不是

if condition:
    do this

我很困惑,因为我总是被教导(并且个人认为这样更好)以第二种形式编写条件。但是,我发现很多人都是用第一种形式写的。

在什么情况下可以接受?我在网上找不到关于此主题的特定指南。

PEP 8(稍微向下滚动), Python 风格指南,不鼓励这样做:

Compound statements (multiple statements on the same line) are generally discouraged.

Yes:

if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()

Rather not:

if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

这是不鼓励的,但可以接受。两种方式都有效,并且执行时没有任何错误。