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

年:

我不明白这行的含义:

parameter and (" " + parameter) or ""

其中参数是字符串

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

罗希特·贾恩(Rohit Jain):

假设您使用的值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表达式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

字符串和?:运算符

使用AND和OR运算符评估字符串

使用or和not运算符

Java:字符串文字和+运算符

用于字符串参数的Javascript *和*运算符

在Python中使用AND和NOT运算符

python中的for循环和in运算符

在R中使用$和%%运算符

在C ++中使用<< ++和>> ++运算符

混合使用 AND 运算符和 OR javascript

Excel Pivot使用“和”运算符

存储和使用算术运算符

Python字符串'in'运算符实现算法和时间复杂度

使用 r 中的运算符提取字符串的左侧和右侧

仅使用递归和串联运算符来转换字符串

在R中使用AND和OR布尔运算符检测字符串

使用'%'运算符将数组和字符串写入文件

使用 ??字符串null或empty和DBNull.Value的运算符

使用三元运算符和递归串联字符串

如何使用OR和AND运算符为Django创建正确的过滤器字符串?

如何使用“ AND”和“ OR”运算符搜索字符串中的单词列表?

在if语句中使用字符串和逻辑运算符

如何使用替换和切片运算符替换 Python 中的部分字符串?

加法赋值运算符和带空白字符串的加号运算符有什么区别?

我应该内联运算符==和!=,以防运算符!=()使用运算符==()的否定

如何对表示为字符串的值和运算符进行算术运算?

使用python的**运算符和*运算符时进行签名

Python中赋值运算符和复合运算符之间的区别

比较运算符和'is'-Python中的运算符优先级?