例如 D,如果 sum_p 不为零。
D = 1/sum_p if sum_p \
else 0
如果我想返回值怎么办?我应该这样做:
return 1/sum_p if sum_p \
else 0
或者只是写
if...
else: return 0
例如 D,如果 sum_p 不为零。
D = 1/sum_p if sum_p \
else 0
如果我想返回值怎么办?我应该这样做:
return 1/sum_p if sum_p \
else 0
或者只是写
if...
else: return 0
如果要执行单个语句条件返回,请使用:
return 1 / sum_p if sum_p else 0
这不是一个if
声明。这是一个条件表达式。把它想象成
return (this_value if this_condition_is_true else that_value)
return
本身在条件之外。
如果行足够长,则必须将其拆分,从风格上讲,我建议使用普通if
语句和两个return
语句。
一般来说,不要\
用作行终止符。PEP-8建议您始终使用括号:
包装长行的首选方法是在括号、方括号和大括号内使用 Python 的隐含行继续。通过将表达式括在括号中,可以将长行分成多行。这些应该优先使用反斜杠来继续行。确保适当缩进续行。打破二元运算符的首选位置是在运算符之后,而不是在它之前。一些例子:
如果您将其分配给变量,则第一种方法很好。
如果要返回值,请将赋值替换为return
语句。
例子:
return 1/sum_p if sum_p \
else 0
就我个人而言,我更喜欢远离转义换行符。很多时候,您可以使用括号来实现相同的目标。使用转义换行符作为 \ 后的空格可能会出错,这可能会破坏您的代码。要使用您的示例:
return (1.0 / sum_p if sum_p
else 0)
\
除非绝对必要,否则请勿使用。
采用
D = 0 if not sum_p else 1.0/sum_p
或者
return 0 if not sum_p else 1.0/sum_p
如果行变得太长或太复杂,只需使用:
if cond: ...
else : ....