编程语言
首页 > 编程语言> > 在Python字符串中使用“and”和“or”运算符

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

作者:互联网

参见英文答案 > Strange use of “and” / “or” operator                                    8个
我不明白这条线的含义:

parameter and (" " + parameter) or ""

其中parameter是string

为什么人们想要使用和和或运算符一般使用python字符串?

解决方法:

假设您正在使用参数的值,但如果该值为None,那么您更愿意使用空字符串“”而不是None.你一般会做什么?

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

这就是表达式正在做的事情.首先,你应该了解什么和和或运算符:

> a和b如果a为True则返回b,否则返回a.
> a或b如果a为True则返回a,否则返回b.

所以,你的表达:

parameter and (" " + parameter) or ""

这实际上相当于:

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

在以下情况下如何评估表达式:

>参数 – A1被评估为True:

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

result = (" " + parameter) or ""

result = " " + parameter

>参数 – A1为无:

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

result = None or ""

result = ""

作为一般建议,对于条件表达式,使用A if C else B形式表达式会更好,更具可读性.所以,你应该更好地使用:

" " + parameter if parameter else ""

而不是给定的表达式.有关if-else表达式背后的动机,请参阅PEP 308 – Conditional Expression.

标签:boolean-operations,python,string
来源: https://codeday.me/bug/20190917/1810063.html