我仅在将布尔变量设置为时才需要打印一些内容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。我在这里想念什么?
3 回答
慕婉清6462132
TA贡献1804条经验 获得超2个赞
Python不不会有拖尾if 声明。
ifPython 有两种:
if 声明:
if condition: statement
if condition:
block
if 表达式(在Python 2.5中引入)
expression_if_true if condition else expression_if_false
请注意,两者print a和b = 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在一行中编写常规语句,尽管它的可读性较差,并且实际上没有理由避免使用两行变体。
回首忆惘然
TA贡献1847条经验 获得超11个赞
内联if-else EXPRESSION必须始终包含else子句,例如:
a = 1 if b else 0
如果您想使'a'变量值保持不变-修改旧的'a'值(语法要求仍要求其他):
a = 1 if b else a
这段代码留下一个不变当b转弯是假的。
添加回答
举报
0/150
提交
取消