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

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

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

我错过了什么吗?

推荐答案

Python not后面有一个if statement.

Python中有两种类型的if:

  1. if条声明:

    if condition: statement
    if condition:
        block
    
  2. if expression(在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条款,它会打印/分配什么?打印/作业(job)是still there.

请注意,如果您不希望它出现,您可以始终在一行上编写常规的if语句,尽管它的可读性较差,并且没有理由避免使用两行变体.

Python相关问答推荐

错误:找不到TensorFlow / Cygwin的匹配分布

无法获得指数曲线_fit来处理日期

Flask:如何在完整路由代码执行之前返回验证

我可以使用极点优化这个面向cpu的pandas代码吗?

将列表中的元素替换为收件箱中的元素

删除pandas rame时间序列列中未更改的值

绘制系列时如何反转轴?

在编写要Excel的数据透视框架时修复标题行

强制venv在bin而不是收件箱文件夹中创建虚拟环境

实现的差异取决于计算出的表达是直接返回还是首先存储在变量中然后返回

在上下文管理器中更改异常类型

当密钥是复合且唯一时,Pandas合并抱怨标签不唯一

提取两行之间的标题的常规表达

通过优化空间在Python中的饼图中添加标签

根据不同列的值在收件箱中移动数据

仿制药的类型铸造

形状弃用警告与组合多边形和多边形如何解决

在www.example.com中使用`package_data`包含不包含__init__. py的非Python文件

CommandeError:模块numba没有属性generated_jit''''

pandas:对多级列框架的列进行排序/重新排序