python 中的一行条件构造
One line Conditional constructs in python
在 javascript 中,我可以制作单行条件构造,例如:
var Verbose = true; // false
if ( Verbose ) console.log("Verbose mode");
在 shell 脚本 ( bash 中,我可以制作单行条件构造,例如:
Verbose=false # true
[ $Verbose == true ] && echo "Verbose mode" || echo "Silent mode"
如何在 python 中制作相同的内容?
这对于在大而深的递归方法中包装 "verbose" 消息是必需的。我可以按功能包装它或使用两行,例如:
if Verbose:
print "Verbose mode"
但是这个太丑了
Python 让你在一行中有 if
和保护语句:
if verbose: print('verbose')
从风格上讲,PEP 8 不鼓励这样做;但是 Python 仍然允许它(并且永远:-) 当保护语句简短且结构化时(例如 break
、continue
、&c),我个人并不介意它
如前所述,您可以将 if 和 print 放在一行中。
但只是为了完整和糟糕地使用 python 短路,你可以写:
verbose = True
verbose and print("Verbose mode")
但这很丑陋。
您甚至可以实现相当于 bash 语句
verbose and not print("Verbose mode") or print("Silent mode")
但这更丑:)
其他答案都涵盖了
if verbose: print 'Verbose'
但是对于需要 else
的中间示例,您可以使用三元
print 'Verbose' if verbose else 'Silent'
尽管这种风格的优点……值得怀疑
在 javascript 中,我可以制作单行条件构造,例如:
var Verbose = true; // false
if ( Verbose ) console.log("Verbose mode");
在 shell 脚本 ( bash 中,我可以制作单行条件构造,例如:
Verbose=false # true
[ $Verbose == true ] && echo "Verbose mode" || echo "Silent mode"
如何在 python 中制作相同的内容?
这对于在大而深的递归方法中包装 "verbose" 消息是必需的。我可以按功能包装它或使用两行,例如:
if Verbose:
print "Verbose mode"
但是这个太丑了
Python 让你在一行中有 if
和保护语句:
if verbose: print('verbose')
从风格上讲,PEP 8 不鼓励这样做;但是 Python 仍然允许它(并且永远:-) 当保护语句简短且结构化时(例如 break
、continue
、&c),我个人并不介意它
如前所述,您可以将 if 和 print 放在一行中。
但只是为了完整和糟糕地使用 python 短路,你可以写:
verbose = True
verbose and print("Verbose mode")
但这很丑陋。 您甚至可以实现相当于 bash 语句
verbose and not print("Verbose mode") or print("Silent mode")
但这更丑:)
其他答案都涵盖了
if verbose: print 'Verbose'
但是对于需要 else
的中间示例,您可以使用三元
print 'Verbose' if verbose else 'Silent'
尽管这种风格的优点……值得怀疑