Szukaj…


i

Ocenia drugi argument wtedy i tylko wtedy, gdy oba argumenty są prawdziwe. W przeciwnym razie ocenia pierwszy argument falsey.

x = True
y = True
z = x and y # z = True

x = True
y = False
z = x and y # z = False

x = False
y = True
z = x and y # z = False

x = False
y = False
z = x and y # z = False

x = 1
y = 1
z = x and y # z = y, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 0
y = 1
z = x and y # z = x, so z = 0 (see above)

x = 1
y = 0
z = x and y # z = y, so z = 0 (see above)

x = 0
y = 0
z = x and y # z = x, so z = 0 (see above)

1 „y w powyższym przykładzie można zmienić na dowolną wartość truthy, i 0 ” S może być zmieniona do dowolnej wartości falsey.

lub

Ocenia pierwszy prawdziwy argument, jeśli jeden z argumentów jest prawdziwy. Jeśli oba argumenty są fałszywe, przejdzie do drugiego argumentu.

x = True
y = True
z = x or y # z = True

x = True
y = False
z = x or y # z = True

x = False
y = True
z = x or y # z = True

x = False
y = False
z = x or y # z = False

x = 1
y = 1
z = x or y # z = x, so z = 1, see `and` and `or` are not guaranteed to be a boolean

x = 1
y = 0
z = x or y # z = x, so z = 1 (see above)

x = 0
y = 1
z = x or y # z = y, so z = 1 (see above)

x = 0
y = 0
z = x or y # z = y, so z = 0 (see above)

1 „y w powyższym przykładzie można zmienić na dowolną wartość truthy, i 0 ” S może być zmieniona do dowolnej wartości falsey.

nie

Zwraca przeciwieństwo następującej instrukcji:

x = True
y = not x # y = False

x = False
y = not x # y = True

Ocena zwarcia

Python minimalnie ocenia wyrażenia logiczne.

>>> def true_func():
...     print("true_func()")
...     return True
... 
>>> def false_func():
...     print("false_func()")
...     return False
... 
>>> true_func() or false_func()
true_func()
True
>>> false_func() or true_func()
false_func()
true_func()
True
>>> true_func() and false_func()
true_func()
false_func()
False
>>> false_func() and false_func()
false_func()
False

`i` i` lub` nie mają gwarancji, że zwrócą wartość logiczną

Gdy użyjesz or , zwróci pierwszą wartość w wyrażeniu, jeśli jest to prawda, w przeciwnym razie zwróci drugą wartość na ślepo. Tj. or odpowiada:

def or_(a, b):
    if a:
        return a
    else:
        return b

For and zwróci pierwszą wartość, jeśli jest fałszywa, w przeciwnym razie zwróci ostatnią wartość:

def and_(a, b):
    if not a:
        return a
    else:
        return b

Prosty przykład

W Pythonie możesz porównać pojedynczy element za pomocą dwóch operatorów binarnych - po jednym z każdej strony:

if 3.14 < x < 3.142:
    print("x is near pi")

W wielu (większości?) Językach programowania byłoby to oceniane w sposób sprzeczny ze zwykłą matematyką: (3.14 < x) < 3.142 , ale w Pythonie jest traktowany jak 3.14 < x and x < 3.142 , tak jak większość nieprogramujących oczekiwałby.



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow