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ụ,
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.
Để 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.
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 |
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.
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 |
Đâ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.
a | not (a) |
---|---|
F | T |
T | F |
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ề.
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ề.
Một số trường hợp sử dụng của các toán tử logic được đưa ra dưới đây −
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
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
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
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]