if-else 表达式可以作为“return”的参数吗?
这是我正在尝试做的事情的示例:
return m +
if a:
x
elif b:
y
else c:
z
我可以写成:
addend = m
if a:
m += x
elif b:
m += y
else c:
m += z
return m
最佳答案
那么,可以使用Python的三元方法,比如:
return m + (x if a else y if b else z)
但是这样做可能更具可读性:
if a: return m + x
if b: return m + y
return m + z
<小时/>As an aside,
else c:
is not really sensible code: you useif/elif
if you have a condition, orelse
for default action (no condition).
例如,就您在评论中发布的代码而言,您可以选择简洁但仍然是自记录的:
def rental_car_costs(days):
basecost = days * 40
discount = 50 if days >= 7 else 20 if days >= 3 else 0
return basecost - discount
关于Python - 在 return 内嵌套 if else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32042632/