我是否可以使用以下内容作为Python中条件运算符的替代方法?

我是否可以使用以下内容作为Python中条件运算符的替代方法?,python,conditional,Python,Conditional,我发现以下代码与Python中的条件运算符类似 num1 = condition and val1 or val2 我可以用它来代替下面的吗 num1 = val1 if condition else val2 我建议你不要这样做有两个原因 If条件语句清楚地表达了您的意图,这有助于提高代码的可读性 这种行为在不同的python版本(过去或将来)中可能不一致,如果使用这种方法,您可能会以非常微妙的方式破坏代码 我建议你不要这样做有两个原因 If条件语句清楚地表达了您的意图,这有助于提高代码的

我发现以下代码与Python中的条件运算符类似

num1 = condition and val1 or val2
我可以用它来代替下面的吗

num1 = val1 if condition else val2

我建议你不要这样做有两个原因

  • If条件语句清楚地表达了您的意图,这有助于提高代码的可读性
  • 这种行为在不同的python版本(过去或将来)中可能不一致,如果使用这种方法,您可能会以非常微妙的方式破坏代码

  • 我建议你不要这样做有两个原因

  • If条件语句清楚地表达了您的意图,这有助于提高代码的可读性
  • 这种行为在不同的python版本(过去或将来)中可能不一致,如果使用这种方法,您可能会以非常微妙的方式破坏代码

  • 不,你不能。如果
    val1
    为falsy,它将无法正常工作:


    不,你不能。如果
    val1
    为falsy,它将无法正常工作:


    您建议的第一个代码并不总是与第二个代码相同,因为这里有一个反例,其中
    条件
    为真,
    val1
    为0,
    val2
    为2

    num1 = True and 0 or 2
    

    num1
    赋值后等于2,因为0在逻辑表达式的上下文中计算为false。在第二个代码中,结果将是0。

    您建议的第一个代码并不总是与第二个代码相同,因为这里有一个反例,其中
    条件为真,
    val1
    为0,
    val2
    为2

    num1 = True and 0 or 2
    

    num1
    赋值后等于2,因为0在逻辑表达式的上下文中计算为false。在第二个代码中,结果将是0。

    …为什么要使用不可读的东西而不是条件?可以这样做,但不是python方式…为什么要使用不可读的东西而不是条件?可以这样做,但不是python方式