Python 如果一行中有多个if-else,如何解释它们?
好吧,我当然明白,如果有其他人是在单行返回像Python 如果一行中有多个if-else,如何解释它们?,python,python-3.x,if-statement,Python,Python 3.x,If Statement,好吧,我当然明白,如果有其他人是在单行返回像 return 0 if x==y else 1 def cmp(x, y): return 0 if x == y else 1 if x > y else -1 翻译成 if x==y: return 0 else: return 1 我对那些在同一行中多次出现if-else的语句感到困惑,比如 return 0 if x==y else 1 def cmp(x, y): return 0 if x =
return 0 if x==y else 1
def cmp(x, y):
return 0 if x == y else 1 if x > y else -1
翻译成
if x==y:
return 0
else:
return 1
我对那些在同一行中多次出现if-else的语句感到困惑,比如
return 0 if x==y else 1
def cmp(x, y):
return 0 if x == y else 1 if x > y else -1
如何解释和理解用单行书写的if-else语句。为清楚起见,它是嵌套的else-if语句,可以这样看
if x == y:
return 0
else:
if x > y:
return 1
else:
return -1
如果代码是清晰易懂的,而不需要太多的努力,那就太好了
所以稍后,如果您想在冗长的条件语句中再添加一个case,那么可以这样做,所以更好的选择是使用elif
梯形图
def _comp(total):
if total>90:
return 'Python lover'
elif total>80 and total<=89:
return 'Friend of python'
# elif total>50 and total<=79 added later easily
# return 'you like python' added later easily
else:
return 'python is waiting for you'
def_comp(总计):
如果总数>90:
返回“Python爱好者”
elif total>80和total50以及total引入括号使其更容易理解
0 if x == y else 1 if x > y else -1
必须解析为
0 if x == y else (1 if x > y else -1)
这是一个很好的答案,因为它说明了如何处理更复杂的表达式,例如a if cond1 else(B if cond2 else(C if cond3 else(D))
,虽然您通常应该尽可能避免类似的事情。@ChronoKitsune虽然您通常应该尽可能避免类似的事情
True,但当我浏览大多数python库时,它们都充满了此类语句。@Rakesh_K是的,这是真的。如果你有一长串的单行If-else语句,通常最好是通过使所有内容更清晰来提高可读性。根据Python的禅(<代码>导入):“稀疏比稠密好”,“如果实现很容易解释,这可能是个好主意。”当你开始这样做的时候,它变得更加复杂,这意味着你可以考虑改变它,因为“简单胜过复杂”,“可读性很重要”。有时候复杂性有很好的理由,所以禅宗并不禁止它。