gpt4 book ai didi

python - 如何在 Python 中嵌套单行语句?

转载 作者:行者123 更新时间:2023-12-01 07:58:13 25 4
gpt4 key购买 nike

一个简单的问题。首先,我注意到在 Python 中,我可以通过更改如下的简短语句来使事情变得更加简洁:

if some_condition:
do_something()

对此:

if some_condition: do_something()

当然,这一更改仅在 if 语句内的代码仅由一行组成的情况下才有效。

但是,如果有多个嵌套“构造”(我指的是 if-else、for、while 或 try- except 语句等),则会出现语法错误。例如,我无法更改此:

if some_condition:
if other_condition:
do_something()

对此:

if some_condition: if other_condition: do_something()

甚至是这样:

if some_condition: if other_condition:
do_something()

但这确实有效:

if some_condition:
if other_condition: do_something()

我的猜测是,这样做的原因是在一行上有两个构造,这样会产生某种歧义。我想知道是否有某种方法我仍然可以将两个语句放在一行上但可以正常工作。例如,也许类似于这样:

if some_condition: (if other_condition: do_something())

这当然是行不通的。然而,希望它能让我更清楚我在这里到底想做什么。除了“你不应该这样做”之外,任何想法都将受到赞赏。

在我被你们这些纯粹主义者蜂拥而至并宣扬这不是 Pythonic 或其他什么之前,是的,我知道这不是用 Python 编写代码的最佳方式。将其视为一个研究问题。我只是想知道我正在寻找的东西是否可能。

最佳答案

不可能将多个冒号放在一行上。

无论如何,PEP8建议始终在冒号后换行。在大多数情况下,最好遵循此准则。

正如 @Suven Pandey 所指出的,if 语句可以使用嵌套三元运算符嵌套在一行上,但请不要在一行上使用多个。到那时,代码就变得极其丑陋且不可读。

关于python - 如何在 Python 中嵌套单行语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55840792/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com