代码之家  ›  专栏  ›  技术社区  ›  Prasanna

带嵌套三元运算符的字符串串联将忽略该字符串

  •  0
  • Prasanna  · 技术社区  · 6 年前

    我发现以下两种说法有不同之处。

    message = "a is " + "greater than" if a > 10 else "less than" if a <10 else "equal to" + " 10"
    

    message = "a is " + ("greater than" if a > 10 else ("less than" if a <10 else "equal to")) + " 10"
    

    有人能解释一下这里发生了什么吗

    1 回复  |  直到 6 年前
        1
  •  6
  •   khelwood Muhammed Elsayed.radwan    6 年前

    第一种解释为:

    ("a is "+"greater than") if a > 10 else "less than" if a < 10 else ("equal to"+" 10")
    

    看到了吗 docs :“在所有Python操作中,条件表达式的优先级最低。”

    这就是为什么可以选择用括号将表达式的各个部分分组。