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

新手上路,请多包涵

仅当布尔变量设置为 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

我在这里错过了什么?

原文由 Ricky Robinson 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 366
2 个回答

Python 没有 尾随的 if 语句

Python中有两种 if

  1. if 声明:
    if condition: statement
   if condition:
       block

  1. 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 语句,尽管它的可读性较差,而且确实没有理由避免两行变种。

原文由 Jan Hudec 发布,翻译遵循 CC BY-SA 3.0 许可协议

内联 if-else EXPRESSION 必须始终包含 else 子句,例如:

 a = 1 if b else 0

如果你想保持你的 ‘a’ 变量值不变 - 评估旧的 ‘a’ 值(语法要求仍然需要其他):

 a = 1 if b else a

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

原文由 Rostyslav Dzinko 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题