对Python字符串使用“ and”和“ or”运算符

发布于 2021-01-29 19:37:10

我不明白这行的含义:

parameter and (" " + parameter) or ""

其中 参数 是字符串

为什么通常要对python字符串使用andor运算符?

关注者
0
被浏览
153
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    假设您使用的是的值parameter,但如果说的是值None,那么您希望使用一个空字符串""代替None。您一般会做什么?

    if parameter:
        # use parameter (well your expression using `" " + parameter` in this case
    else:
        # use ""
    

    这就是表达的意思。首先,你应该明白andor运营商的作用:

    • a and b返回b如果是True,否则返回a
    • a or b返回a如果是True,否则返回b

    所以,你的表情:

    parameter and (" " + parameter) or ""
    

    实际上等效于:

    (parameter and (" " + parameter)) or  ""
    #    A1               A2               B
    #           A                     or   B
    

    在以下情况下如何计算表达式:

    • parameter - A1 评估为True

      result = (True and " " + parameter) or ""
      

      result = (” ” + parameter) or “”

      result = ” ” + parameter

    • parameter - A1None

      result = (None and " " + parameter) or ""
      

      result = None or “”

      result = “”


    作为一般建议,使用A if C else B表格表达式作为条件表达式更好,更易读。因此,您最好使用:

    " " + parameter if parameter else ""
    

    而不是给定的表达式。有关表达式背后的动机,请参阅PEP
    308-条件
    if-else表达式。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看