Warm tip: This article is reproduced from serverfault.com, please click

python-如何编写内联if语句进行打印?

(python - How to write inline if statement for print?)

发布于 2012-08-09 09:31:48

仅当布尔变量设置为True. 所以,在看了这个之后,我尝试了一个简单的例子:

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

如果我写同样的事情print a if b==True

我在这里错过了什么?

Questioner
Ricky Robinson
Viewed
22
Jan Hudec 2015-01-12 17:26:03

Python不不会有拖尾if 声明

ifPython中有两种

  1. if 陈述:

    if condition: statement
    if condition:
        block
    
  2. if 表达式(在 Python 2.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语句写在一行上,尽管它的可读性较差并且确实没有理由避免使用两行变量。