我有一个argparser有一个详细的标志,我试图尽量减少我得写详细的输出量。速记'如果'抛出一个语法错误
这按预期工作:
#!/usr/bin/python
verbose=True
print(verbose)
if verbose:
print("verbose output")
输出:
$ ./example.py
True
verbose output
但
#!/usr/bin/python
verbose=True
print(verbose)
print("verbose output") if verbose
抛出一个错误:
$ ./example.py
File "./example.py", line 5
print("verbose output") if verbose
^
SyntaxError: invalid syntax
我以为python的语法是statement if condition else condition
?我犯了一些错误吗?
$ python -V
Python 3.6.2
没有速记'如果test'语法,没有。只有*条件表达式*' if else '。 –
它具有'表达式,如果条件else表达式'语法。它不具有'语句,如果条件'。 – deceze
你不应该在这里使用,不需要'缩短'任何东西。如果必须,请将该表达式放在与'if'测试相同的行:'if verbose:print('verbose output')'。 –