python中的条件表达式

问题描述

今天在写了如下条件表达式:

for i in range(-2,3):
    prespace = i if i > 0 else -i

结果直接报了如下错误:

SyntaxError: can't assign to conditional expression

问题解决

查阅官方文档:
python官方文档后发现有如下说明:

# first version -- no parens
level = 1 if logging else 0
# second version -- no parens
level = (1 if logging else 0)

于是果断试了第二种,结果OK了。

后记

根据文档,这两中应该是都可以的。但是推荐使用第二种。
因为第一种容易给人造成这条语句的目的是决定是否给level赋值,而不是赋值1还是赋值0.

你可能感兴趣的:(python)