e.g。 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
答案 0 :(得分:5)
如果要进行单个语句条件返回,请使用:
return 1 / sum_p if sum_p else 0
不是if
声明。这是一个conditional expression。把它想象成
return (this_value if this_condition_is_true else that_value)
return
本身 条件。
如果该行足够长,则必须将其拆分,从风格上来说,我建议使用普通的if
语句和两个return
语句。
通常,不使用\
作为行终止符。 PEP-8建议您始终使用括号:
包装长行的首选方法是在括号,括号和括号内使用Python隐含的行继续。通过在括号中包装表达式,可以在多行中分割长行。这些应该优先使用反斜杠来继续行。确保适当缩进续行。打破二元运算符的首选位置是运算符之后,而不是它之前。一些例子:
答案 1 :(得分:0)
如果你将它分配给一个变量,第一种方法就好了。
如果要返回值,请使用return
语句替换分配。
示例:
return 1/sum_p if sum_p \
else 0
答案 2 :(得分:0)
我个人更喜欢远离逃避新行。通常,您可以使用括号来实现相同的目标。在\可能会破坏您的代码之后,转义换行符可能会出现太多错误。要使用您的示例:
return (1.0 / sum_p if sum_p
else 0)
答案 3 :(得分: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 : ....