gpt4 book ai didi

带有 if 语句的 Python oneliner

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:30 26 4
gpt4 key购买 nike

我想知道是否可以在一行中编写以下 python if 语句。我还想知道为什么会出现以下错误:

python -c 'a=1; if True: print a; else: a=a+1'

File "<string>", line 1
a=1; if True: print a; else: a=a+1
^
SyntaxError: invalid syntax

最佳答案

只有 simple statements can appear in a semicolon-separate statement list :

stmt_list     ::=  simple_stmt (";" simple_stmt)* [";"]

if 语句是复合语句,因此包含它是无效语法。

在分号分隔的列表中允许复合语句会导致歧义。这是有效的语法:

if condition: a = 1; b = 1

只有当 condition 为真时,这两个赋值才会被执行,这是大多数人直觉地阅读语句的方式。如果我们允许

c = 1; if condition: a = 1; b = 1

代码的读者可能不清楚 b = 1 是否是 if 语句的一部分。

Python 使用缩进来分隔代码套件,您不能在以分号分隔的语句列表中使用缩进。

关于带有 if 语句的 Python oneliner,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38892336/

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