Hướng dẫn python or operator - python hoặc toán tử

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng Python hoặc toán tử This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using the Python or Operator

Show

Có ba toán tử Boolean trong Python:

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
9,
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 và
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
1. Với họ, bạn có thể kiểm tra các điều kiện và quyết định đường dẫn thực hiện của bạn sẽ đi. Trong hướng dẫn này, bạn sẽ tìm hiểu về toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 và cách sử dụng nó.

Đến cuối hướng dẫn này, bạn sẽ học được:

  • Cách thức hoạt động của nhà điều hành Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0

  • Cách sử dụng toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 trong bối cảnh Boolean và không phải là Boolean

  • Loại vấn đề lập trình nào bạn có thể giải quyết bằng cách sử dụng

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 trong Python

  • Cách đọc và hiểu rõ hơn về mã người khác khi họ sử dụng một số tính năng đặc biệt của toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0

Bạn sẽ học cách sử dụng nhà điều hành Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 bằng cách xây dựng một số ví dụ thực tế. Ngay cả khi bạn không thực sự sử dụng tất cả các khả năng mà nhà điều hành Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 cung cấp, việc làm chủ nó sẽ cho phép bạn viết mã tốt hơn.

Logic boolean

George Boole (1815 Từ1864) đã phát triển cái mà ngày nay được gọi là Đại số Boolean, là nền tảng của logic kỹ thuật số đằng sau phần cứng máy tính và ngôn ngữ lập trình.Boolean algebra, which is the foundation of the digital logic behind computer hardware and programming languages.

Đại số Boolean được xây dựng xung quanh giá trị sự thật của các biểu thức và đối tượng (cho dù chúng là đúng hay sai) và dựa trên các hoạt động boolean

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
9,
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0 và
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
1. Các hoạt động này được thực hiện thông qua các toán tử logic hoặc boolean cho phép bạn tạo các biểu thức boolean, là các biểu thức đánh giá là đúng hoặc sai.truth value of expressions and objects (whether they are true or false) and is based in the Boolean operations
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
9,
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0, and
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
1. These operations are implemented through logical or Boolean operators that allow you to create Boolean expressions, which are expressions that evaluate to true or false.

Với sự trợ giúp của logic Boolean, bạn có thể đánh giá các điều kiện và quyết định những hoạt động của các chương trình của bạn sẽ thực hiện, tùy thuộc vào giá trị sự thật của các điều kiện đó. Đây là một nền tảng quan trọng trong lập trình và cung cấp cho bạn các công cụ để quyết định luồng thực thi các chương trình của bạn.

Hãy cùng xem một số khái niệm cơ bản liên quan đến logic Boolean trong Python:

  • Boolean là loại giá trị có thể là

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 hoặc
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3. Trong Python, loại Boolean là
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    4, là một loại phụ của
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    5.
    is type of value that can be either
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 or
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3. In Python, the Boolean type is
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    4, which is a subtype of
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    5.

  • Các giá trị Boolean là các giá trị

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 hoặc
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3 (với vốn T và F) trong Python.
    are the values
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 or
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3 (with a capital T and F) in Python.

  • Một biến Boolean là một biến có thể là

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 hoặc
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3. Các biến Boolean thường được sử dụng là
    >>> True or 4 < 3
    True
    
    0 để chỉ ra liệu các điều kiện cụ thể có tồn tại hay không.Boolean variable is a variable that can be either
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 or
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3. Boolean variables are commonly used as
    >>> True or 4 < 3
    True
    
    0 to indicate whether specific conditions exist.

  • Biểu thức boolean là một biểu thức trả về

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 hoặc
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3.Boolean expression is an expression that returns either
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 or
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3.

  • Bối cảnh Boolean có thể là các điều kiện

    >>> True or 4 < 3
    True
    
    3 và các vòng
    >>> True or 4 < 3
    True
    
    4, trong đó Python mong đợi một biểu thức để đánh giá theo giá trị boolean. Bạn có thể sử dụng hầu như bất kỳ biểu thức hoặc đối tượng nào trong bối cảnh Boolean và Python sẽ cố gắng xác định giá trị sự thật của nó.
    can be
    >>> True or 4 < 3
    True
    
    3 conditions and
    >>> True or 4 < 3
    True
    
    4 loops, where Python expects an expression to evaluate to a Boolean value. You can use virtually any expression or object in a Boolean context, and Python will try to determine its truth value.

  • Toán tử là các biểu thức phụ hoặc các đối tượng liên quan đến một biểu thức (boolean hay không) và được kết nối bởi một toán tử. are the subexpressions or objects involved in an expression (Boolean or not) and connected by an operator.

  • Các toán tử boolean hoặc logic là

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    9 (logic
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    9 hoặc kết hợp),
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    0 (logic
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    0 hoặc phân tách) và
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    1 (logic
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    1 hoặc phủ định). Các từ khóa
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    9,
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 và
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    1 là các toán tử Python cho các hoạt động này.
    are
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    9 (logical
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    9 or conjunction),
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    0 (logical
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    0 or disjunction), and
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    1 (logical
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    1 or negation). The keywords
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    9
    ,
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0
    , and
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    1
    are the Python operators for these operations.

Bây giờ bạn có một bối cảnh tốt hơn về logic Boolean, hãy để tiến hành một số chủ đề cụ thể của Python hơn.

Các nhà khai thác Boolean Python

Python có ba toán tử boolean được gõ dưới dạng từ tiếng Anh đơn giản:

  1. >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    9
  2. >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0
  3. >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    1

Các toán tử này kết nối các biểu thức boolean (và đối tượng) để tạo các biểu thức boolean hợp chất.

Các nhà khai thác Python Boolean luôn lấy hai biểu thức boolean hoặc hai đối tượng hoặc kết hợp chúng, vì vậy họ đã xem xét các nhà khai thác nhị phân.binary operators.

Trong hướng dẫn này, bạn sẽ bao gồm toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0, là nhà điều hành thực hiện hoạt động logic
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0 trong Python. Bạn sẽ học cách nó hoạt động và cách sử dụng nó.

Cách thức hoạt động của nhà điều hành Python >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0

Với toán tử boolean

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0, bạn có thể kết nối hai biểu thức boolean thành một biểu thức hợp chất. Ít nhất một biểu hiện phụ phải đúng với biểu thức ghép được coi là đúng, và nó không quan trọng. Nếu cả hai biểu hiện phụ là sai, thì biểu thức là sai.

Đây là logic chung đằng sau toán tử

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0. Tuy nhiên, toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 làm tất cả điều này và hơn thế nữa, như bạn sẽ thấy trong các phần sau.

Sử dụng >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0 với các biểu thức boolean

Bạn sẽ cần hai biểu thức phụ để tạo biểu thức boolean bằng toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 làm đầu nối. Cú pháp cơ bản cho biểu thức boolean với
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 như sau:

# Syntax for Boolean expression with or in Python
exp1 or exp2

Nếu ít nhất một trong các biểu thức phụ (

>>> def answer():
...     ans = input('Do you...? (yes/no): ')
...     if ans.lower() == 'yes' or ans.lower() == 'y':
...         print(f'Positive answer: {ans}')
...     elif ans.lower() == 'no' or ans.lower() == 'n':
...         print(f'Negative answer: {ans}')
...
>>> answer()
Do you...? (yes/no): y
Positive answer: y
>>> answer()
Do you...? (yes/no): n
Negative answer: n
6 hoặc
>>> def answer():
...     ans = input('Do you...? (yes/no): ')
...     if ans.lower() == 'yes' or ans.lower() == 'y':
...         print(f'Positive answer: {ans}')
...     elif ans.lower() == 'no' or ans.lower() == 'n':
...         print(f'Negative answer: {ans}')
...
>>> answer()
Do you...? (yes/no): y
Positive answer: y
>>> answer()
Do you...? (yes/no): n
Negative answer: n
7) đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, thì biểu thức được coi là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Nếu cả hai biểu thức phụ đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, thì biểu thức là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Định nghĩa này được gọi là bao gồm hoặc, vì nó cho phép cả hai khả năng cũng như.inclusive or, since it allows both possibilities as well as either.

Tại đây, một bản tóm tắt về hành vi của nhà điều hành Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0:

Kết quả của
>>> def answer():
...     ans = input('Do you...? (yes/no): ')
...     if ans.lower() == 'yes' or ans.lower() == 'y':
...         print(f'Positive answer: {ans}')
...     elif ans.lower() == 'no' or ans.lower() == 'n':
...         print(f'Negative answer: {ans}')
...
>>> answer()
Do you...? (yes/no): y
Positive answer: y
>>> answer()
Do you...? (yes/no): n
Negative answer: n
6
Kết quả của
>>> def answer():
...     ans = input('Do you...? (yes/no): ')
...     if ans.lower() == 'yes' or ans.lower() == 'y':
...         print(f'Positive answer: {ans}')
...     elif ans.lower() == 'no' or ans.lower() == 'n':
...         print(f'Negative answer: {ans}')
...
>>> answer()
Do you...? (yes/no): y
Positive answer: y
>>> answer()
Do you...? (yes/no): n
Negative answer: n
7
Kết quả của
>>> def my_range(x):
...     if x < 20 or x > 40:
...         print('Outside')
...     else:
...         print('Inside')
...
>>> my_range(25)
Inside
>>> my_range(18)
Outside
5
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3

Bảng 1. Nhà điều hành Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 logic
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0: Bảng sự thật
Logical Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 Operator: Truth Table

Bảng này tóm tắt giá trị sự thật kết quả của một biểu thức boolean như

>>> def my_range(x):
...     if x < 20 or x > 40:
...         print('Outside')
...     else:
...         print('Inside')
...
>>> my_range(25)
Inside
>>> my_range(18)
Outside
5 tùy thuộc vào các giá trị sự thật của biểu hiện phụ của nó.

Hãy để minh họa các giá trị sự thật kết quả được hiển thị trong Bảng 1 bằng cách mã hóa một số ví dụ thực tế:Table 1 by coding some practical examples:

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False

Trong các ví dụ trước, bất cứ khi nào biểu hiện phụ được đánh giá thành

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, kết quả toàn cầu là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Mặt khác, nếu cả hai biểu hiện phụ được đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, thì kết quả toàn cầu cũng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.

Sử dụng >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0 với các đối tượng phổ biến

Nói chung, các toán hạng của một biểu thức liên quan đến hoạt động

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0 nên có các giá trị boolean như trong Bảng 1 và kết quả là trả về giá trị sự thật. Khi nói đến các đối tượng, Python không nghiêm ngặt lắm về điều đó và nội bộ thực hiện một bộ quy tắc để quyết định xem một đối tượng có được coi là đúng hay sai hay không:Table 1 and return a truth value as a result. When it comes to objects, Python is not very strict about that and internally implements a set of rules to decide if an object is considered true or false:

Theo mặc định, một đối tượng được coi là đúng trừ khi lớp của nó xác định phương thức

>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
6 trả về
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3 hoặc phương thức
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
8 trả về số 0, khi được gọi với đối tượng. Dưới đây là hầu hết các đối tượng tích hợp được coi là sai:

  • Các hằng số được xác định là sai:
    >>> a = 1
    >>> b = 2
    >>> var1 = a or b
    >>> var1
    1
    >>> a = None
    >>> b = 2
    >>> var2 = a or b
    >>> var2
    2
    >>> a = []
    >>> b = {}
    >>> var3 = a or b
    >>> var3
    {}
    
    9 và
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3.
  • Không thuộc bất kỳ loại số nào:
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    01,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    02,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    03,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    04,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    05
  • Trình tự và bộ sưu tập trống:
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    06,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    07,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    08,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    09,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    10,
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    11

(Source)

Nếu các toán hạng liên quan đến hoạt động

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 là các đối tượng thay vì các biểu thức boolean, thì toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 sẽ trả về một đối tượng đúng hoặc sai, không phải là các giá trị
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2 hoặc
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3 như bạn có thể mong đợi. Giá trị sự thật của đối tượng này được xác định theo các quy tắc mà bạn đã thấy trước đó.

Điều này có nghĩa là Python không ép buộc kết quả của hoạt động

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đối với đối tượng
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
4. Nếu bạn đang thử nghiệm hai đối tượng bằng cách sử dụng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 trong Python, thì toán tử sẽ trả về đối tượng đầu tiên đánh giá thành True hoặc đối tượng cuối cùng trong biểu thức, bất kể giá trị sự thật của nó:

>>>

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}

Trong các ví dụ trước, bất cứ khi nào biểu hiện phụ được đánh giá thành

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, kết quả toàn cầu là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Mặt khác, nếu cả hai biểu hiện phụ được đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, thì kết quả toàn cầu cũng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.

Sử dụng

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 với các đối tượng phổ biến

Nói chung, các toán hạng của một biểu thức liên quan đến hoạt động

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
0 nên có các giá trị boolean như trong Bảng 1 và kết quả là trả về giá trị sự thật. Khi nói đến các đối tượng, Python không nghiêm ngặt lắm về điều đó và nội bộ thực hiện một bộ quy tắc để quyết định xem một đối tượng có được coi là đúng hay sai hay không:

Theo mặc định, một đối tượng được coi là đúng trừ khi lớp của nó xác định phương thức
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
6 trả về
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3 hoặc phương thức
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
8 trả về số 0, khi được gọi với đối tượng. Dưới đây là hầu hết các đối tượng tích hợp được coi là sai:
Các hằng số được xác định là sai:
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
9 và
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.
Không thuộc bất kỳ loại số nào:
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
01,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
02,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
03,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
04,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
05
Trình tự và bộ sưu tập trống:
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
06,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
07,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
08,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
09,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
10,
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
11
Nếu các toán hạng liên quan đến hoạt động
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 là các đối tượng thay vì các biểu thức boolean, thì toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 sẽ trả về một đối tượng đúng hoặc sai, không phải là các giá trị
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2 hoặc
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3 như bạn có thể mong đợi. Giá trị sự thật của đối tượng này được xác định theo các quy tắc mà bạn đã thấy trước đó.
Điều này có nghĩa là Python không ép buộc kết quả của hoạt động
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đối với đối tượng
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
4. Nếu bạn đang thử nghiệm hai đối tượng bằng cách sử dụng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 trong Python, thì toán tử sẽ trả về đối tượng đầu tiên đánh giá thành True hoặc đối tượng cuối cùng trong biểu thức, bất kể giá trị sự thật của nó:

Trong hai ví dụ đầu tiên, các toán hạng đầu tiên (

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
19 và
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
20) là đúng (khác không), do đó, nhà điều hành Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 luôn trả về cái đầu tiên.
Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 Operator Behavior When Testing Objects Instead of Boolean Expressions

Trong hai ví dụ cuối cùng, toán hạng bên trái là sai (một đối tượng trống). Toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đánh giá cả hai toán hạng và trả về đối tượng ở bên phải, có thể đánh giá thành đúng hoặc sai.

Bạn có thể tóm tắt hành vi được hiển thị trong mã trước như sau:

Đối tượng trái

Đối tượng đúng

Kết quả của

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
23

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
24
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
24, nếu nó đánh giá là đúng, nếu không
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25.
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
Bảng 1. Nhà điều hành Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 logic
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0: Bảng sự thật
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2
Bảng 1. Nhà điều hành Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 logic
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0: Bảng sự thật

Bảng này tóm tắt giá trị sự thật kết quả của một biểu thức boolean như

>>> def my_range(x):
...     if x < 20 or x > 40:
...         print('Outside')
...     else:
...         print('Inside')
...
>>> my_range(25)
Inside
>>> my_range(18)
Outside
5 tùy thuộc vào các giá trị sự thật của biểu hiện phụ của nó. Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 Operator Behavior When Testing Objects and Boolean Expressions

Hãy để minh họa các giá trị sự thật kết quả được hiển thị trong Bảng 1 bằng cách mã hóa một số ví dụ thực tế:

>>>

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4

Trong các ví dụ trước, bất cứ khi nào biểu hiện phụ được đánh giá thành

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, kết quả toàn cầu là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Mặt khác, nếu cả hai biểu hiện phụ được đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, thì kết quả toàn cầu cũng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.Case 1 and Case 2, the subexpression
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
50 was evaluated to
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, and the returned value was
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. On the other hand, in Case 3 and Case 4, the subexpression
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
53 was evaluated to
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, so the last operand was returned, and you got an empty list (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
08) and an integer (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
56) instead of
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2 or
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.

Là một bài tập, bạn có thể cố gắng mở rộng Bảng 3 bằng cách đảo ngược thứ tự của các biểu thức trong cột thứ ba, nghĩa là sử dụng

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
59 và cố gắng dự đoán kết quả.Table 3 by reversing the order of the expressions in the third column, that is, use
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
59 and try to predict the results.

Đánh giá ngắn mạch

Python đôi khi có thể xác định giá trị sự thật của biểu thức boolean trước khi nó đánh giá tất cả các biểu hiện phụ và các đối tượng liên quan. Chẳng hạn, nhà điều hành Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 dừng việc đánh giá các toán hạng ngay khi nó tìm thấy một cái gì đó mà Lừa coi là đúng. Ví dụ: biểu thức sau luôn là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2:

>>>

>>> True or 4 < 3
True

Nếu toán hạng đầu tiên trong biểu thức

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đánh giá là TRUE, bất kể giá trị của toán hạng thứ hai (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
63 là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3), thì biểu thức được coi là đúng và toán hạng thứ hai không bao giờ được đánh giá. Điều này được gọi là đánh giá ngắn mạch (lười biếng).short-circuit (lazy) evaluation.

Hãy xem xét một ví dụ khác:

>>>

>>> def true_func():
...     print('Running true_func()')
...     return True
...
>>> def false_func():
...     print('Running false_func()')
...     return False
...
>>> true_func() or false_func()  # Case 1
Running true_func()
True
>>> false_func() or true_func()  # Case 2
Running false_func()
Running true_func()
True
>>> false_func() or false_func()  # Case 3
Running false_func()
Running false_func()
False
>>> true_func() or true_func()  # Case 4
Running true_func()
True

Nếu toán hạng đầu tiên trong biểu thức

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đánh giá là TRUE, bất kể giá trị của toán hạng thứ hai (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
63 là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3), thì biểu thức được coi là đúng và toán hạng thứ hai không bao giờ được đánh giá. Điều này được gọi là đánh giá ngắn mạch (lười biếng).Case 1, Python evaluated
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
65. Since it returns
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, the next operand (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
67) is not evaluated. Notice that the phrase
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
68 is never printed. Finally, the whole expression is considered
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.

Hãy xem xét một ví dụ khác: evaluates both functions, because the first operand (

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
67) is
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Then the operator returns the second result, that is, the value returned by
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
65, which is
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.

Trong trường hợp 1, Python đã đánh giá

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
65. Vì nó trả về
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, toán hạng tiếp theo (
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
67) không được đánh giá. Lưu ý rằng cụm từ
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
68 không bao giờ được in. Cuối cùng, toàn bộ biểu thức được coi là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.
evaluates both functions, because both return
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. The operation returns the last function’s return value, that is
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, and the expression is considered to be
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.

Trường hợp 2 đánh giá cả hai chức năng, vì toán hạng đầu tiên (

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
67) là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Sau đó, toán tử trả về kết quả thứ hai, nghĩa là giá trị được trả về bởi
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
65, đó là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.Case 4, Python only evaluates the first function, which is
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, and the expression is
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.

Trường hợp 3 đánh giá cả hai chức năng, vì cả hai trả về

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Hoạt động trả về giá trị trả về hàm cuối cùng, đó là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3 và biểu thức được coi là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3.short-circuit (lazy) evaluation, the second operand on a Boolean expression is not evaluated if the value of the expression can be determined from the first operand alone. Python (like other languages) bypasses this second evaluation in favor of performance, because evaluating the second operand would be an unnecessary waste of CPU time.

Trong trường hợp 4, Python chỉ đánh giá hàm đầu tiên, đó là

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2 và biểu thức là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2.

  • Trong đánh giá ngắn mạch (lười biếng), toán hạng thứ hai trên biểu thức boolean không được đánh giá nếu giá trị của biểu thức có thể được xác định từ toán hạng đầu tiên. Python (giống như các ngôn ngữ khác) bỏ qua đánh giá thứ hai này có lợi cho hiệu suất, bởi vì đánh giá toán hạng thứ hai sẽ là một sự lãng phí không cần thiết của thời gian CPU.

  • Cuối cùng, khi nói đến hiệu suất khi bạn sử dụng toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0, hãy xem xét phần sau:

Các biểu thức ở phía bên phải của nhà điều hành Python >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0 có thể gọi các chức năng thực hiện công việc quan trọng hoặc quan trọng hoặc có tác dụng phụ đã giành được nếu quy tắc ngắn mạch có hiệu lực.

Điều kiện có nhiều khả năng đúng hơn có thể là điều kiện nhất bên trái. Cách tiếp cận này có thể giảm thời gian thực hiện các chương trình của bạn, bởi vì cách này Python có thể xác định xem điều kiện có đúng chỉ bằng cách đánh giá toán hạng đầu tiên hay không.

Phần tóm tắt

  • Bạn đã học được cách thức hoạt động của nhà điều hành Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 và đã thấy một số tính năng và hành vi chính của nó. Bây giờ bạn đã biết đủ để tiếp tục tăng cấp bằng cách học cách sử dụng toán tử trong việc giải quyết các vấn đề trong thế giới thực.

  • Trước đó, hãy để tóm tắt lại một số điểm quan trọng về

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 trong Python:

  • Nó đáp ứng các quy tắc chung mà một nhà điều hành boolean

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    0 nên tuân theo. Nếu một hoặc cả hai biểu hiện phụ Boolean là đúng, thì kết quả là đúng. Mặt khác, nếu cả hai biểu hiện phụ là sai, thì kết quả là sai.

  • Nó trả về các đối tượng thay vì các giá trị

    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    2 hoặc
    >>> 2 < 4 or 2  # Case 1
    True
    >>> 2 < 4 or []  # Case 2
    True
    >>> 5 > 10 or []  # Case 3
    []
    >>> 5 > 10 or 4  # Case 4
    4
    
    3 khi nó kiểm tra các đối tượng Python. Điều này có nghĩa là biểu thức
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    23 trả về
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    24 nếu nó được đánh giá là đúng và nếu không thì trả về
    >>> exp1 = 1 == 2
    >>> exp1
    False
    >>> exp2 = 7 > 3
    >>> exp2
    True
    >>> exp1 or exp2  # Return True, because exp2 is True
    True
    >>> exp2 or exp1  # Also returns True
    True
    >>> exp3 = 3 < 1
    >>> exp1 or exp3  # Return False, because both are False
    False
    
    25 (bất kể giá trị sự thật của nó).

Nó tuân theo một tập hợp các quy tắc nội bộ được xác định trước để xác định giá trị sự thật của một đối tượng.

Nó ngừng đánh giá các toán hạng ngay khi nó tìm thấy một cái gì đó mà Lừa coi là đúng. Điều này được gọi là đánh giá ngắn mạch hoặc lười biếng.

Bây giờ, thời gian để tìm hiểu nơi và cách bạn có thể sử dụng toán tử này với sự trợ giúp của một số ví dụ.

Bối cảnh Boolean

  1. Trong phần này, bạn sẽ thấy một số ví dụ thực tế về cách sử dụng toán tử Python
    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 và tìm hiểu cách tận dụng hành vi hơi bất thường của nó để viết mã Python tốt hơn.
    conditional execution
  2. Có hai tình huống chính mà bạn có thể nói rằng bạn đang làm việc trong bối cảnh Boolean trong Python: conditional repetition

>>> True or 4 < 3
True
3 Báo cáo: Thực thi có điều kiện

>>> True or 4 < 3
True
4 Vòng lặp: Lặp lại có điều kiện

Với một tuyên bố

>>> True or 4 < 3
True
3, bạn có thể quyết định đường dẫn thực hiện của các chương trình tùy thuộc vào giá trị sự thật của một số điều kiện.control flow statements. They help you decide your programs’ execution path.

Mặt khác, các vòng lặp

>>> True or 4 < 3
True
4 cho phép bạn lặp lại một đoạn mã miễn là một điều kiện nhất định vẫn đúng.

>>> True or 4 < 3 True 3 Báo cáo

Hãy nói rằng bạn muốn đảm bảo rằng một trong hai điều kiện (hoặc cả hai) là đúng trước khi bạn chọn một đường dẫn thực hiện nhất định. Trong trường hợp này, bạn có thể sử dụng toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 để kết nối các điều kiện trong một biểu thức và sử dụng biểu thức đó trong câu lệnh
>>> True or 4 < 3
True
3.

Giả sử bạn cần nhận được xác nhận từ người dùng để chạy một số hành động tùy thuộc vào câu trả lời của người dùng:

>>>

>>> def answer():
...     ans = input('Do you...? (yes/no): ')
...     if ans.lower() == 'yes' or ans.lower() == 'y':
...         print(f'Positive answer: {ans}')
...     elif ans.lower() == 'no' or ans.lower() == 'n':
...         print(f'Negative answer: {ans}')
...
>>> answer()
Do you...? (yes/no): y
Positive answer: y
>>> answer()
Do you...? (yes/no): n
Negative answer: n

Tại đây, bạn nhận được đầu vào của người dùng và gán nó cho

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
00. Sau đó, câu lệnh
>>> True or 4 < 3
True
3 bắt đầu kiểm tra các điều kiện từ trái sang phải. Nếu ít nhất một trong số chúng được đánh giá là TRUE, thì nó sẽ thực thi khối mã
>>> True or 4 < 3
True
3. Tuyên bố
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 làm như vậy.

Trong cuộc gọi đầu tiên đến

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
04, đầu vào của người dùng là
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25, thỏa mãn điều kiện đầu tiên và khối mã
>>> True or 4 < 3
True
3 đã được thực thi. Trong cuộc gọi thứ hai, đầu vào của người dùng (
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
07) đã thỏa mãn điều kiện thứ hai, vì vậy khối mã
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 đã chạy. Nếu đầu vào của người dùng không thỏa mãn bất kỳ điều kiện nào, thì không có khối mã nào được thực thi.

Một ví dụ khác có thể là khi bạn đang cố gắng xác định xem một số nằm ngoài phạm vi. Trong trường hợp này, nó cũng có thể sử dụng toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0. Mã sau đây kiểm tra xem
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
24 có nằm ngoài phạm vi
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
11 đến
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
12:

>>>

>>> def my_range(x):
...     if x < 20 or x > 40:
...         print('Outside')
...     else:
...         print('Inside')
...
>>> my_range(25)
Inside
>>> my_range(18)
Outside

Tại đây, bạn nhận được đầu vào của người dùng và gán nó cho

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
00. Sau đó, câu lệnh
>>> True or 4 < 3
True
3 bắt đầu kiểm tra các điều kiện từ trái sang phải. Nếu ít nhất một trong số chúng được đánh giá là TRUE, thì nó sẽ thực thi khối mã
>>> True or 4 < 3
True
3. Tuyên bố
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 làm như vậy.

Trong cuộc gọi đầu tiên đến

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
04, đầu vào của người dùng là
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25, thỏa mãn điều kiện đầu tiên và khối mã
>>> True or 4 < 3
True
3 đã được thực thi. Trong cuộc gọi thứ hai, đầu vào của người dùng (
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
07) đã thỏa mãn điều kiện thứ hai, vì vậy khối mã
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 đã chạy. Nếu đầu vào của người dùng không thỏa mãn bất kỳ điều kiện nào, thì không có khối mã nào được thực thi.

Một ví dụ khác có thể là khi bạn đang cố gắng xác định xem một số nằm ngoài phạm vi. Trong trường hợp này, nó cũng có thể sử dụng toán tử Python >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0. Mã sau đây kiểm tra xem >>> exp1 = 1 == 2 >>> exp1 False >>> exp2 = 7 > 3 >>> exp2 True >>> exp1 or exp2 # Return True, because exp2 is True True >>> exp2 or exp1 # Also returns True True >>> exp3 = 3 < 1 >>> exp1 or exp3 # Return False, because both are False False 24 có nằm ngoài phạm vi >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 11 đến >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 12:

Khi bạn gọi

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
13 với
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
14, câu lệnh
>>> True or 4 < 3
True
3 kiểm tra
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
16, đó là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Sau đó, nó kiểm tra
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
18, cũng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Kết quả cuối cùng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, do đó khối
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
21 đã được thực thi.

Mặt khác,

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
22 được đánh giá là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Sau đó, toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 thực hiện đánh giá ngắn mạch và điều kiện được coi là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Khối chính được thực thi và giá trị nằm ngoài phạm vi.

from time import sleep

temp = measure_temp()  # Initial temperature measurement

while temp < 100 or temp > 140:
    print('Temperature outside the recommended range')
    print('New Temperature measure in 30 seconds')
    sleep(30)
    print('Measuring Temperature...')
    temp = measure_temp()
    print(f'The new Temperature is {temp} ºF')

>>> True or 4 < 3
True
4 vòng lặp

>>> True or 4 < 3 True 4 Vòng lặp là một ví dụ khác về bối cảnh Boolean nơi bạn có thể sử dụng toán tử Python >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0. Bằng cách sử dụng >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0 trong tiêu đề vòng lặp, bạn có thể kiểm tra một số điều kiện và chạy cơ thể cho đến khi tất cả các điều kiện đánh giá là sai.

Giả sử bạn cần đo nhiệt độ vận hành của một số thiết bị công nghiệp cho đến khi nó vào phạm vi từ 100 ºF đến 140 ºF. Để làm như vậy, bạn có thể sử dụng vòng lặp

>>> True or 4 < 3
True
4:

Đây là một ví dụ đồ chơi gần như trong mã giả, nhưng nó minh họa ý tưởng. Ở đây, vòng

>>> True or 4 < 3
True
4 đang chạy cho đến khi
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
32 nằm trong khoảng từ 100 ºF và 140 ºF. Nếu giá trị nhiệt độ nằm ngoài phạm vi, thì cơ thể vòng lặp được chạy và bạn sẽ đo nhiệt độ một lần nữa. Khi
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
33 trả về giá trị từ 100 ºF và 140 ºF, vòng lặp hoàn thiện. Việc đo nhiệt độ được thực hiện cứ sau 30 giây bằng cách sử dụng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
34.

>>>

>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}

Tại đây, bạn nhận được đầu vào của người dùng và gán nó cho

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
00. Sau đó, câu lệnh
>>> True or 4 < 3
True
3 bắt đầu kiểm tra các điều kiện từ trái sang phải. Nếu ít nhất một trong số chúng được đánh giá là TRUE, thì nó sẽ thực thi khối mã
>>> True or 4 < 3
True
3. Tuyên bố
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 làm như vậy.

Trong cuộc gọi đầu tiên đến

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
04, đầu vào của người dùng là
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25, thỏa mãn điều kiện đầu tiên và khối mã
>>> True or 4 < 3
True
3 đã được thực thi. Trong cuộc gọi thứ hai, đầu vào của người dùng (
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
07) đã thỏa mãn điều kiện thứ hai, vì vậy khối mã
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 đã chạy. Nếu đầu vào của người dùng không thỏa mãn bất kỳ điều kiện nào, thì không có khối mã nào được thực thi.

Một ví dụ khác có thể là khi bạn đang cố gắng xác định xem một số nằm ngoài phạm vi. Trong trường hợp này, nó cũng có thể sử dụng toán tử Python >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 0. Mã sau đây kiểm tra xem >>> exp1 = 1 == 2 >>> exp1 False >>> exp2 = 7 > 3 >>> exp2 True >>> exp1 or exp2 # Return True, because exp2 is True True >>> exp2 or exp1 # Also returns True True >>> exp3 = 3 < 1 >>> exp1 or exp3 # Return False, because both are False False 24 có nằm ngoài phạm vi >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 11 đến >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 12:

Khi bạn gọi

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
13 với
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
14, câu lệnh
>>> True or 4 < 3
True
3 kiểm tra
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
16, đó là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Sau đó, nó kiểm tra
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
18, cũng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3. Kết quả cuối cùng là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, do đó khối
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
21 đã được thực thi.

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
0

Tại đây, bạn nhận được đầu vào của người dùng và gán nó cho

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
00. Sau đó, câu lệnh
>>> True or 4 < 3
True
3 bắt đầu kiểm tra các điều kiện từ trái sang phải. Nếu ít nhất một trong số chúng được đánh giá là TRUE, thì nó sẽ thực thi khối mã
>>> True or 4 < 3
True
3. Tuyên bố
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 làm như vậy.

Trong cuộc gọi đầu tiên đến

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
04, đầu vào của người dùng là
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
25, thỏa mãn điều kiện đầu tiên và khối mã
>>> True or 4 < 3
True
3 đã được thực thi. Trong cuộc gọi thứ hai, đầu vào của người dùng (
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
07) đã thỏa mãn điều kiện thứ hai, vì vậy khối mã
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
03 đã chạy. Nếu đầu vào của người dùng không thỏa mãn bất kỳ điều kiện nào, thì không có khối mã nào được thực thi.

Một ví dụ khác có thể là khi bạn đang cố gắng xác định xem một số nằm ngoài phạm vi. Trong trường hợp này, nó cũng có thể sử dụng toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0. Mã sau đây kiểm tra xem
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
24 có nằm ngoài phạm vi
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
11 đến
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
12:

Khi bạn gọi >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 13 với >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 14, câu lệnh >>> True or 4 < 3 True 3 kiểm tra >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 16, đó là >>> 2 < 4 or 2 # Case 1 True >>> 2 < 4 or [] # Case 2 True >>> 5 > 10 or [] # Case 3 [] >>> 5 > 10 or 4 # Case 4 4 3. Sau đó, nó kiểm tra >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 18, cũng là >>> 2 < 4 or 2 # Case 1 True >>> 2 < 4 or [] # Case 2 True >>> 5 > 10 or [] # Case 3 [] >>> 5 > 10 or 4 # Case 4 4 3. Kết quả cuối cùng là >>> 2 < 4 or 2 # Case 1 True >>> 2 < 4 or [] # Case 2 True >>> 5 > 10 or [] # Case 3 [] >>> 5 > 10 or 4 # Case 4 4 3, do đó khối >>> 2 or 3 2 >>> 5 or 0.0 5 >>> [] or 3 3 >>> 0 or {} {} 21 đã được thực thi.

Mặt khác,

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
22 được đánh giá là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Sau đó, toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 thực hiện đánh giá ngắn mạch và điều kiện được coi là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2. Khối chính được thực thi và giá trị nằm ngoài phạm vi.

Nếu bạn cung cấp một khoảng trống có thể trống cho

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
58 hoặc
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
59, thì bạn sẽ nhận được một
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
62. Tuy nhiên, bạn có thể sửa đổi hành vi này bằng cách sử dụng toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0. Hãy cùng xem mã sau:

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
1

Hành vi mặc định của

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
58 và
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
59 là tăng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
62 nếu bạn gọi chúng với một khoảng trống có thể trống. Tuy nhiên, bằng cách sử dụng toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0, bạn cung cấp giá trị
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
56 mặc định cho các chức năng này và ghi đè hành vi mặc định của chúng.

Đối số mặc định có thể thay đổi

Một vấn đề phổ biến, các lập trình viên Python mới bắt đầu là cố gắng sử dụng các đối tượng có thể thay đổi làm đối số mặc định cho các chức năng.

Các giá trị có thể thay đổi cho các đối số mặc định có thể giữ trạng thái giữa các cuộc gọi. Điều này thường bất ngờ. Nó xảy ra bởi vì các giá trị đối số mặc định được đánh giá và lưu chỉ một lần, nghĩa là khi câu lệnh

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
69 được chạy, không phải mỗi lần hàm kết quả được gọi. Đó là lý do tại sao bạn cần cẩn thận về việc thay đổi mặc định có thể thay đổi bên trong các chức năng.

Xem xét ví dụ sau:

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
2

Hành vi mặc định của

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
58 và
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
59 là tăng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
62 nếu bạn gọi chúng với một khoảng trống có thể trống. Tuy nhiên, bằng cách sử dụng toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0, bạn cung cấp giá trị
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
56 mặc định cho các chức năng này và ghi đè hành vi mặc định của chúng.

Đối số mặc định có thể thay đổi

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
3

Hành vi mặc định của

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
58 và
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
59 là tăng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
62 nếu bạn gọi chúng với một khoảng trống có thể trống. Tuy nhiên, bằng cách sử dụng toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0, bạn cung cấp giá trị
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
56 mặc định cho các chức năng này và ghi đè hành vi mặc định của chúng.

Đối số mặc định có thể thay đổi

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
4

Một vấn đề phổ biến, các lập trình viên Python mới bắt đầu là cố gắng sử dụng các đối tượng có thể thay đổi làm đối số mặc định cho các chức năng.

Các giá trị có thể thay đổi cho các đối số mặc định có thể giữ trạng thái giữa các cuộc gọi. Điều này thường bất ngờ. Nó xảy ra bởi vì các giá trị đối số mặc định được đánh giá và lưu chỉ một lần, nghĩa là khi câu lệnh

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
69 được chạy, không phải mỗi lần hàm kết quả được gọi. Đó là lý do tại sao bạn cần cẩn thận về việc thay đổi mặc định có thể thay đổi bên trong các chức năng.

Xem xét ví dụ sau:

Ở đây, mọi cuộc gọi đến

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
70 cộng đồng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
71 đến cuối
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
72, vì
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
72 giữ một tham chiếu đến cùng một đối tượng (mặc định ____108). Bạn không nhận được một
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
75 mới mỗi khi chức năng được gọi như bạn mong đợi.

Nếu đó không phải là hành vi bạn muốn, thì giải pháp truyền thống (và an toàn nhất) là di chuyển mặc định đến phần thân của hàm:

>>>

Với việc triển khai này, bạn đảm bảo rằng
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
72 được đặt thành một
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
75 trống mỗi khi bạn gọi
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
70 mà không có đối số, dựa vào giá trị mặc định cho
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
72.

Tuyên bố

>>> True or 4 < 3
True
3 trong ví dụ này gần như có thể được thay thế bằng bài tập
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
81. Bằng cách này, nếu không có đối số nào được chuyển vào chức năng, thì
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
72 sẽ mặc định là
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
9 và toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 sẽ trả về danh sách trống ở bên phải:

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
6

Tuy nhiên, điều này không chính xác giống nhau. Ví dụ: nếu một

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
75 trống được truyền vào, thì hoạt động
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 sẽ khiến chức năng sửa đổi và in một ____275 mới được tạo, thay vì sửa đổi và in các
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
75 được thông qua ban đầu như phiên bản
>>> True or 4 < 3
True
3.

Nếu bạn khá chắc chắn rằng bạn sẽ chỉ sử dụng các đối tượng

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
75 không trống, thì bạn có thể sử dụng phương pháp này. Nếu không, hãy gắn bó với phiên bản
>>> True or 4 < 3
True
3.

Không phân chia

Không phân chia có thể là một vấn đề phổ biến khi bạn xử lý các tính toán số. Để tránh vấn đề này, có khả năng bạn cuối cùng bạn sẽ kiểm tra xem mẫu số có bằng

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
01 hay không bằng cách sử dụng câu lệnh
>>> True or 4 < 3
True
3.

Hãy cùng xem một ví dụ:

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
7

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
5

Ở đây, bạn đã kiểm tra xem mẫu số (

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
43) không bằng
>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
01, và sau đó bạn trả về kết quả của hoạt động phân chia. Nếu
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
96 được đánh giá thành
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
2, thì
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
98 ngầm trả về
>>> a = 1
>>> b = 2
>>> var1 = a or b
>>> var1
1
>>> a = None
>>> b = 2
>>> var2 = a or b
>>> var2
2
>>> a = []
>>> b = {}
>>> var3 = a or b
>>> var3
{}
9. Hãy cùng xem cách nhận được kết quả tương tự, nhưng lần này sử dụng toán tử Python
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0:

Trong trường hợp này, toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 đánh giá biểu hiện phụ đầu tiên (
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
96). Chỉ khi biểu hiện phụ này là
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
3, biểu hiện phụ thứ hai (
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
04) được đánh giá và kết quả cuối cùng sẽ là sự phân chia của
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
42 và
>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
43.

>>>

>>> exp1 = 1 == 2
>>> exp1
False
>>> exp2 = 7 > 3
>>> exp2
True
>>> exp1 or exp2  # Return True, because exp2 is True
True
>>> exp2 or exp1  # Also returns True
True
>>> exp3 = 3 < 1
>>> exp1 or exp3  # Return False, because both are False
False
8

Ở đây,

>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
29 giữ một tham chiếu đến giá trị được trả về bởi
>>> 2 < 4 or 2  # Case 1
True
>>> 2 < 4 or []  # Case 2
True
>>> 5 > 10 or []  # Case 3
[]
>>> 5 > 10 or 4  # Case 4
4
12, có cùng giá trị được trả về bởi biểu thức Boolean.

Sự kết luận

Bây giờ bạn biết cách thức hoạt động của nhà điều hành Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0 cũng như cách sử dụng nó để giải quyết một số vấn đề lập trình phổ biến trong Python.

Bây giờ bạn đã biết những điều cơ bản của toán tử Python

>>> 2 or 3
2
>>> 5 or 0.0
5
>>> [] or 3
3
>>> 0 or {}
{}
0, bạn sẽ có thể:

  • Sử dụng toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 trong bối cảnh Boolean và không phải là Boolean

  • Giải quyết một số loại vấn đề lập trình bằng cách sử dụng hiệu quả toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0

  • Viết mã Pythonic tốt hơn và nhiều hơn bằng cách tận dụng các tính năng đặc biệt của

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0 trong Python

  • Đọc và hiểu rõ hơn về mã người khác Mã khi họ sử dụng toán tử Python

    >>> 2 or 3
    2
    >>> 5 or 0.0
    5
    >>> [] or 3
    3
    >>> 0 or {}
    {}
    
    0

Ngoài ra, bạn đã học được một chút về logic Boolean, cũng như một số khái niệm chính của nó trong Python.

Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Sử dụng Python hoặc toán tử This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Using the Python or Operator