Python - Logical Operators

Python Logical Operators

Các toán tử logic trong Python được sử dụng để tạo thành các biểu thức Boolean phức hợp. Mỗi toán hạng cho các toán tử logic này cũng là một biểu thức Boolean. Ví dụ,

Example

age > 16 and marks > 80
percentage < 50 or attendance < 75

Cùng với từ khóa False, Python coi None, số 0 của tất cả các loại, và các chuỗi rỗng ( strings , tuples , lists ), danh sách rỗng dictionaries , và từ điển rỗng sets là False. Tất cả các giá trị khác được coi là True.

Có ba toán tử logic trong Python. Chúng là " and ", " or " và " not ". Chúng phải được viết bằng chữ thường.

Logical "and" Operator

Để biểu thức Boolean phức hợp là Đúng, cả hai toán hạng phải là Đúng. Nếu bất kỳ hoặc cả hai toán hạng đều có giá trị là Sai, biểu thức sẽ trả về Sai.

Logical "and" Operator Truth Table

Bảng dưới đây cho thấy các kịch bản.

a b a and b
F F F
F T F
T F F
T T T

Logical "or" Operator

Ngược lại, toán tử or trả về True nếu bất kỳ toán hạng nào là True. Để biểu thức Boolean phức hợp trở thành False, cả hai toán hạng phải là False.

Logical "or" Operator Truth Table

Bảng dưới đây cho thấy kết quả của toán tử "or" với các điều kiện khác nhau:

a b a or b
F F F
F T T
T F T
T T T

Logical "not" Operator

Đây là một toán tử đơn. Trạng thái của toán hạng Boolean theo sau sẽ bị đảo ngược. Kết quả là not True trở thành False và not False trở thành True.

Logical "not" Operator Truth Table

a not (a)
F T
T F

How the Python interpreter evaluates the logical operators?

Biểu thức "x and y" đầu tiên sẽ đánh giá "x". Nếu "x" là sai, giá trị của nó sẽ được trả về; nếu không, "y" sẽ được đánh giá và giá trị kết quả sẽ được trả về.

logical_operator

Biểu thức "x or y" sẽ đánh giá "x" trước; nếu "x" là đúng, giá trị của nó sẽ được trả về; nếu không, "y" sẽ được đánh giá và giá trị kết quả sẽ được trả về.

x_or_y

Python Logical Operators Examples

Một số trường hợp sử dụng của các toán tử logic được đưa ra dưới đây −

Example 1: Logical Operators With Boolean Conditions

x = 10
y = 20
print("x > 0 and x < 10:",x > 0 and x < 10)
print("x > 0 and y > 10:",x > 0 and y > 10)
print("x > 10 or y > 10:",x > 10 or y > 10)
print("x%2 == 0 and y%2 == 0:",x%2 == 0 and y%2 == 0)
print ("not (x+y>15):", not (x+y)>15)

Nó sẽ tạo ra output

x > 0 and x < 10: False
x > 0 and y > 10: True
x > 10 or y > 10: True
x%2 == 0 and y%2 == 0: True
not (x+y>15): False

Example 2: Logical Operators With Non- Boolean Conditions

Chúng ta có thể sử dụng các toán hạng không phải boolean với các toán tử logic. Ở đây, chúng ta cần lưu ý rằng bất kỳ số nào khác không và các chuỗi không rỗng đều được đánh giá là True. Do đó, các bảng chân lý tương tự của các toán tử logic vẫn áp dụng.

Trong ví dụ sau, các toán hạng số được sử dụng cho các toán tử logic. Các giá trị variables "x", "y" đánh giá là True, "z" là False.

x = 10
y = 20
z = 0
print("x and y:",x and y)
print("x or y:",x or y)
print("z or x:",z or x)
print("y or z:", y or z)

Nó sẽ tạo ra output

x and y: 20
x or y: 10
z or x: 10
y or z: 20

Example 3: Logical Operators With Strings and Tuples

Biến chuỗi được coi là True và một tuple rỗng được coi là False trong ví dụ sau −

a="Hello"
b=tuple()
print("a and b:",a and b)
print("b or a:",b or a)

Nó sẽ tạo ra output

a and b: ()
b or a: Hello

Example 4: Logical Operators To Compare Sequences (Lists)

Cuối cùng, hai đối tượng danh sách dưới đây không rỗng. Do đó, x và y trả về đối tượng sau, và x hoặc y trả về đối tượng trước.

x=[1,2,3]
y=[10,20,30]
print("x and y:",x and y)
print("x or y:",x or y)

Nó sẽ tạo ra output

x and y: [10, 20, 30]
x or y: [1, 2, 3]