Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python和运算符的实用示例_Python_Boolean - Fatal编程技术网

Python和运算符的实用示例

Python和运算符的实用示例,python,boolean,Python,Boolean,Python具有针对所有对象的功能。这将启用更通用的定义,适用于所有对象: x或y:如果x为false,则为y,否则为x x和y:如果x为假,则为x,否则为y 我见过OR运算符的实际用例,例如: ENV_VAR = os.environ.get(‘ENV_VAR’) or <default_value> # you want to see only odd numbers that are in both lists list1 = [1,5,7,6,4,9,13,519231

Python具有针对所有对象的功能。这将启用更通用的定义,适用于所有对象:

  • x或y
    :如果x为false,则为y,否则为x
  • x和y
    :如果x为假,则为x,否则为y
我见过OR运算符的实际用例,例如:

ENV_VAR = os.environ.get(‘ENV_VAR’) or <default_value>
# you want to see only odd numbers that are in both lists
list1 = [1,5,7,6,4,9,13,519231]
list2 = [55,9,3,20,18,7,519231]
oddNumsInBothLists = [element for element in set(list1) if element in set(list2) and element % 2]
# => oddNumsInBothLists = [7, 9, 519231]
ENV_VAR=os.environ.get('ENV_VAR')或

但是,我没有看到任何使用Python和运算符的实际示例。在这里,我正在寻找利用真值测试的AND运算符的示例,如上面的OR运算符示例。

任何时候,只要您需要两件事都应该为真的语句。例如:

ENV_VAR = os.environ.get(‘ENV_VAR’) or <default_value>
# you want to see only odd numbers that are in both lists
list1 = [1,5,7,6,4,9,13,519231]
list2 = [55,9,3,20,18,7,519231]
oddNumsInBothLists = [element for element in set(list1) if element in set(list2) and element % 2]
# => oddNumsInBothLists = [7, 9, 519231]
布尔运算符,尤其是and,通常可以忽略,但以牺牲可读性为代价。当且仅当其所有成员均为true时,内置函数
all()
将返回true。类似地,如果函数的任何成员为true,则函数
any()
将返回true

shouldBeTrue = [foo() for foo in listOfFunctions]
if all(shouldBeTrue):
    print("Success")
else:
    print("Fail")
也许一种更简单的思考方式是使用
代替连续的if语句,而使用
代替嵌套的if语句

def foobar(foo, bar):
    if(foo):
        return foo
    if(bar):
        return bar
    return False
在功能上与:

def foobar(foo, bar):
    return foo or bar
def foobar(foo, bar):
    return foo and bar
以及:

在功能上与:

def foobar(foo, bar):
    return foo or bar
def foobar(foo, bar):
    return foo and bar
这可以通过一个简单的测试来证明

class Foo:
    def __init__(self, name):
        self.name = name

test1 = Foo("foo")
test2 = Foo("bar")

print((test1 or test2).name) # => foo
print((test1 and test2).name) # => bar
print((not test1 and not test2).name) # => AttributeError for 'bool' (False)

任何时候你需要一个陈述,其中两件事应该是真实的。例如:

ENV_VAR = os.environ.get(‘ENV_VAR’) or <default_value>
# you want to see only odd numbers that are in both lists
list1 = [1,5,7,6,4,9,13,519231]
list2 = [55,9,3,20,18,7,519231]
oddNumsInBothLists = [element for element in set(list1) if element in set(list2) and element % 2]
# => oddNumsInBothLists = [7, 9, 519231]
布尔运算符,尤其是and,通常可以忽略,但以牺牲可读性为代价。当且仅当其所有成员均为true时,内置函数
all()
将返回true。类似地,如果函数的任何成员为true,则函数
any()
将返回true

shouldBeTrue = [foo() for foo in listOfFunctions]
if all(shouldBeTrue):
    print("Success")
else:
    print("Fail")
也许一种更简单的思考方式是使用
代替连续的if语句,而使用
代替嵌套的if语句

def foobar(foo, bar):
    if(foo):
        return foo
    if(bar):
        return bar
    return False
在功能上与:

def foobar(foo, bar):
    return foo or bar
def foobar(foo, bar):
    return foo and bar
以及:

在功能上与:

def foobar(foo, bar):
    return foo or bar
def foobar(foo, bar):
    return foo and bar
这可以通过一个简单的测试来证明

class Foo:
    def __init__(self, name):
        self.name = name

test1 = Foo("foo")
test2 = Foo("bar")

print((test1 or test2).name) # => foo
print((test1 and test2).name) # => bar
print((not test1 and not test2).name) # => AttributeError for 'bool' (False)

到目前为止,
在python中最常见的用法就是检查多个条件:

if 13 <= age <= 19 and gender == 'female':
    print "it's a teenage girl"
它有一个缺陷:如果
x
0
None
'
,或者任何类型的假值,那么将选择
y
,因此它与C版本并不完全相同

以下是“固定”版本:

自从python引入了


到目前为止,
在python中最常见的用法就是检查多个条件:

if 13 <= age <= 19 and gender == 'female':
    print "it's a teenage girl"
它有一个缺陷:如果
x
0
None
'
,或者任何类型的假值,那么将选择
y
,因此它与C版本并不完全相同

以下是“固定”版本:

自从python引入了


示例中使用的功能

os.environ.get(‘ENV_VAR’) or <default_value>
os.environ.get('ENV_VAR')或
被称为短路评估。如果AND和OR的这一方面是您问题的主题,您可能会发现这篇维基百科文章很有用:


示例中使用的功能

os.environ.get(‘ENV_VAR’) or <default_value>
os.environ.get('ENV_VAR')或
被称为短路评估。如果AND和OR的这一方面是您问题的主题,您可能会发现这篇维基百科文章很有用:


我在这个答案中找到了
以及
运算符的好例子:

直接引用答案:

Python的
运算符返回第一个Truth-y值或最后一个值,然后停止。这对于需要回退值的常见编程分配非常有用

就像这个简单的例子:

print my_list or "no values"

使用
进行补充,返回第一个假y值或最后一个值并停止,当您需要保护而不是回退时使用

像这个:

my_list and my_list.pop()

我在这个答案中找到了
以及
运算符的好例子:

直接引用答案:

Python的
运算符返回第一个Truth-y值或最后一个值,然后停止。这对于需要回退值的常见编程分配非常有用

就像这个简单的例子:

print my_list or "no values"

使用
进行补充,返回第一个假y值或最后一个值并停止,当您需要保护而不是回退时使用

像这个:

my_list and my_list.pop()

当我需要获取一个对象的属性时,我有时会使用
,如果该对象不是
None
,否则获取
None

>>> import re

>>> match = re.search(r'\w(\d+)', 'test123')

>>> number = match and match.group(1)

>>> number
>>> '123'

>>> match = re.search(r'\w(\d+)', 'test')

>>> number = match and match.group(1)

>>> number

当我需要获取一个对象的属性时,我有时会使用
,如果该对象不是
None
,否则获取
None

>>> import re

>>> match = re.search(r'\w(\d+)', 'test123')

>>> number = match and match.group(1)

>>> number
>>> '123'

>>> match = re.search(r'\w(\d+)', 'test')

>>> number = match and match.group(1)

>>> number

os.getenv('ENV_VAR',default=default_value)
更好声音更像JavaScript。。。不确定是否有人在Python中使用它。您还没有看到如果condition1和condition2:do_something
?谢谢@wim,是的,它看起来确实比我的更明确。我想到了另一个例子,那就是
name=input('enteryourname:')或'Unknown'
。你认为这是一个更好的例子吗?@gill,是的,你的例子绝对正确。然而,我没有看到它与利用真值测试的相关性。你能说得更具体些吗?我应该更具体地说,我希望看到在Java中不可能出现的示例。
os.getenv('ENV_VAR',default=default_value)
更好声音更像JavaScript。。。不确定是否有人在Python中使用它。您还没有看到如果condition1和condition2:do_something
?谢谢@wim,是的,它看起来确实比我的更明确。我想到了另一个例子,那就是
name