如何编写用于打印的内联if语句?

2024-04-16 13:37:50 发布

您现在位置:Python中文网/ 问答频道 /正文

只有当布尔变量设置为True时,我才需要打印一些内容。所以,在看了this之后,我尝试了一个简单的例子:

>>> a = 100
>>> b = True
>>> print a if b
  File "<stdin>", line 1
    print a if b
             ^
SyntaxError: invalid syntax  

如果我写print a if b==True也是一样。

我错过了什么?


Tags: true内容ifstdinlinethis例子file
3条回答

“else”语句是必需的。你可以这样做:

>>> b = True
>>> a = 1 if b else None
>>> a
1
>>> b = False
>>> a = 1 if b else None
>>> a
>>> 

编辑:

或者,根据您的需要,您可以尝试:

>>> if b: print(a)

Python没有尾随的if语句。

Python中有两种if

  1. if语句:

    if condition: statement
    if condition:
        block
    
  2. if表达式(在Python2.5中引入)

    expression_if_true if condition else expression_if_false
    

注意,print ab = a都是语句。只有a部分是表达式。所以如果你写信

print a if b else 0

意思是

print (a if b else 0)

同样,当你写

x = a if b else 0

意思是

x = (a if b else 0)

如果没有else子句,它将打印/分配什么?打印/分配仍然存在。

注意,如果您不希望它出现在那里,您可以始终在一行上编写正则的if语句,尽管它的可读性较差,而且没有理由避免使用两行变量。

Inline if else表达式必须始终包含else子句,例如:

a = 1 if b else 0

如果要保持“a”变量值不变-将旧的“a”值进行分类(否则仍然是语法要求所必需的):

a = 1 if b else a

当b变为False时,这段代码保持a不变。

相关问题 更多 >