Каждый раз, когда вам нужно заявление, в котором должны быть правдивы две вещи. Например:
# 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]
булевы операторы, в частности, и, как правило, могут быть опущены за счет удобства чтения. Встроенная функция all()
вернет true, если и только если все ее члены верны. Аналогично, функция any()
вернет true, если любой из ее членов является истинным.
shouldBeTrue = [foo() for foo in listOfFunctions]
if all(shouldBeTrue):
print("Success")
else:
print("Fail")
Возможно, более простой способ думать об этом является то, что or
будет использоваться вместо последовательных if-заявлений, тогда как and
будет использоваться вместо вложенных 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):
if(foo):
if(bar):
return bar
return False
функционально идентичны:
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)
'ОС. getenv ('ENV_VAR', default = default_value) 'лучше – wim
Звучит скорее как JavaScript ... Не уверен, что кто-то использует его в Python. – IanS
Вы не видели 'if condition1 и condition2: do_something'? – gil