Python - 在if返回时嵌套if else

时间:2015-08-17 04:06:08

标签: python

if-else表达式可以是' return'?

的参数

以下是我尝试做的一个例子:

public void selectItem(int position) {
Intent intent = null;
switch(position) {
    case 0:
        intent = new Intent(this, Activity_0.class);
        break;
    case 1:
        intent = new Intent(this, Activity_1.class);
        break;

    ...


    case 4: 
        intent = new Intent(this, Activity_4.class);
        break;

    default : 
        intent = new Intent(this, Activity_0.class); // Activity_0 as default
        break;
}

startActivity(intent);

我可以写成:

return m +
    if a:
        x
    elif b:
        y
    else c:
        z

1 个答案:

答案 0 :(得分:3)

好吧,您可以使用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
  

顺便说一句,else c:并不是真正明智的代码:如果条件,则使用if/elif; 默认<else / em>动作(无条件)。

例如,就您在评论中发布的代码而言,您可以选择简洁但仍然自我记录:

def rental_car_costs(days):
    basecost = days * 40
    discount = 50 if days >= 7 else 20 if days >= 3 else 0
    return basecost - discount