Hiểu Logic Boolean Trong Python 3
Có thể bạn quan tâm
Boolean đại diện cho các giá trị chân lý được liên kết với nhánh logic của toán học, cung cấp thông tin cho các thuật toán trong repository a học máy tính. Được đặt theo tên của nhà toán học George Boole, từ Boolean luôn bắt đầu bằng chữ B. Các giá trị True và False cũng sẽ luôn có chữ T và F viết hoa tương ứng, vì chúng là các giá trị đặc biệt trong Python.
Trong hướng dẫn này, ta sẽ đi qua những điều cơ bản mà bạn cần hiểu cách hoạt động của Boolean, bao gồm so sánh Boolean và các toán tử logic và bảng sự thật.
Toán tử so sánh
Trong lập trình, các toán tử so sánh được sử dụng để so sánh các giá trị và đánh giá xuống một giá trị Boolean duy nhất của True hoặc False.
Bảng dưới đây cho thấy các toán tử so sánh Boolean.
Nhà điều hành | Nó nghĩa là gì |
---|---|
== | Tương đương với |
! = | Không bằng |
< | Ít hơn |
> | Lớn hơn |
<= | Ít hơn hoặc bằng |
> = | Lớn hơn hoặc bằng |
Để hiểu cách hoạt động của các toán tử này, hãy gán hai số nguyên cho hai biến trong một chương trình Python:
x = 5 y = 8Ta biết rằng trong ví dụ này, vì x có giá trị là 5 nên nó nhỏ hơn y có giá trị là 8 .
Sử dụng hai biến đó và các giá trị liên quan của chúng, hãy xem qua các toán tử từ bảng trên. Trong chương trình của ta , ta sẽ yêu cầu Python in ra liệu mỗi toán tử so sánh có đánh giá là Đúng hay Sai hay không. Để giúp ta và những người khác hiểu rõ hơn về kết quả kết quả này, Python cũng sẽ in một chuỗi để cho ta thấy nó đang đánh giá những gì.
x = 5 y = 8 print("x == y:", x == y) print("x != y:", x != y) print("x < y:", x < y) print("x > y:", x > y) print("x <= y:", x <= y) print("x >= y:", x >= y) Output x == y: False x != y: True x < y: True x > y: False x <= y: True x >= y: FalseTheo logic toán học, trong mỗi biểu thức ở trên, Python đã đánh giá:
- 5 ( x ) có bằng 8 ( y ) không? Sai
- 5 không bằng 8 sao? Thật
- 5 có nhỏ hơn 8 không? Thật
- 5 có lớn hơn 8 không? Sai
- 5 nhỏ hơn hay bằng 8? Thật
- 5 không nhỏ hơn hoặc bằng 8? Sai
Mặc dù ta đã sử dụng số nguyên ở đây, ta có thể thay thế chúng bằng các giá trị float.
Chuỗi cũng được dùng với toán tử Boolean. Chúng phân biệt chữ hoa chữ thường trừ khi bạn sử dụng một phương thức chuỗi bổ sung.
Ta có thể xem các chuỗi được so sánh như thế nào trong thực tế:
Sammy = "Sammy" sammy = "sammy" print("Sammy == sammy: ", Sammy == sammy) Output Sammy == sammy: FalseChuỗi "Sammy" ở trên không bằng chuỗi "sammy" , bởi vì chúng không hoàn toàn giống nhau; một cái bắt đầu bằng chữ S và cái kia bằng chữ s . Nhưng, nếu ta thêm một biến khác được gán giá trị là "Sammy" , thì chúng sẽ đánh giá bằng:
Sammy = "Sammy" sammy = "sammy" also_Sammy = "Sammy" print("Sammy == sammy: ", Sammy == sammy) print("Sammy == also_Sammy", Sammy == also_Sammy) Output Sammy == sammy: False Sammy == also_Sammy: TrueBạn cũng có thể sử dụng các toán tử so sánh khác bao gồm > và < để so sánh hai chuỗi. Python sẽ so sánh các chuỗi này một cách từ vựng bằng cách sử dụng các giá trị ASCII của các ký tự.
Ta cũng có thể đánh giá các giá trị Boolean bằng các toán tử so sánh:
t = True f = False print("t != f: ", t != f) Output t != f: TrueKhối mã trên đã đánh giá rằng True không bằng False .
Lưu ý sự khác biệt giữa hai toán tử = và == .
x = y # Sets x equal to y x == y # Evaluates whether x is equal to yĐầu tiên, = là toán tử gán, sẽ đặt một giá trị bằng một giá trị khác. Thứ hai, == là một toán tử so sánh sẽ đánh giá xem hai giá trị có bằng nhau hay không.
Toán tử logic
Có ba toán tử logic được sử dụng để so sánh các giá trị. Họ đánh giá các biểu thức xuống giá trị Boolean, trả về True hoặc False . Các toán tử này là and , or và not và được định nghĩa trong bảng dưới đây.
Nhà điều hành | Nó nghĩa là gì | Nó trông như thế nào |
---|---|---|
và | Đúng nếu cả hai đều đúng | x and y |
hoặc là | Đúng nếu ít nhất một đúng | x or y |
không phải | Đúng chỉ nếu sai | not x |
Các toán tử logic thường được sử dụng để đánh giá xem hai hoặc nhiều biểu thức là đúng hay không đúng. Ví dụ, chúng được dùng để xác định xem điểm có đạt hay không và học sinh có đăng ký vào khóa học hay không, và nếu cả hai trường hợp đều đúng thì học sinh sẽ được chỉ định một điểm trong hệ thống. Một ví dụ khác là xác định liệu user có phải là khách hàng hoạt động hợp lệ của một cửa hàng trực tuyến hay không dựa trên việc họ có tín dụng tại cửa hàng hay đã mua hàng trong 6 tháng qua.
Để hiểu cách hoạt động của các toán tử logic, hãy đánh giá ba biểu thức:
print((9 > 7) and (2 < 4)) # Both original expressions are True print((8 == 8) or (6 != 6)) # One original expression is True print(not(3 <= 1)) # The original expression is False Output True True TrueTrong trường hợp đầu tiên, print((9 > 7) and (2 < 4)) , cả 9 > 7 và 2 < 4 cần được đánh giá là True vì toán tử and đang được sử dụng.
Trong trường hợp thứ hai, print((8 == 8) or (6 != 6)) , vì 8 == 8 đánh giá là True, nên nó không tạo ra sự khác biệt khi 6 != 6 đánh giá là False vì toán tử or là đã sử dụng. Nếu ta đã sử dụng toán tử and , điều này sẽ đánh giá là Sai.
Trong trường hợp thứ ba, print(not(3 <= 1)) , toán tử not phủ định giá trị Sai mà 3 <=1 trả về.
Hãy thay thế float cho các số nguyên và nhắm đến các đánh giá Sai:
print((-0.2 > 1.4) and (0.8 < 3.1)) # One original expression is False print((7.5 == 8.9) or (9.2 != 9.2)) # Both original expressions are False print(not(-5.7 <= 0.3)) # The original expression is TrueTrong ví dụ trên,
- and phải có ít nhất một biểu thức Sai được đánh giá thành Sai,
- or phải có cả hai biểu thức được đánh giá là Sai,
- not phải có biểu thức bên trong của nó là True thì biểu thức mới được đánh giá là False.
Nếu kết quả ở trên có vẻ không rõ ràng đối với bạn, ta sẽ xem xét một số bảng sự thật bên dưới để giúp bạn tăng tốc.
Bạn cũng có thể viết các câu lệnh ghép bằng cách sử dụng and , or và not :
not((-0.2 > 1.4) and ((0.8 < 3.1) or (0.1 == 0.1)))Trước tiên, hãy xem biểu thức bên trong nhất: (0.8 < 3.1) or (0.1 == 0.1) . Biểu thức này đánh giá là True vì cả hai câu lệnh toán học đều là True.
Bây giờ, ta có thể lấy giá trị trả về True và kết hợp nó với biểu thức bên trong tiếp theo: (-0.2 > 1.4) and (True) . Ví dụ này trả về False vì câu lệnh toán học -0.2 > 1.4 là Sai, và (False) and (True) trả về Sai.
Cuối cùng, ta có biểu thức bên ngoài: not(False) , đánh giá là True, vì vậy giá trị trả về cuối cùng nếu ta in câu lệnh này ra là:
Output TrueCác toán tử logic and , or và not đánh giá các biểu thức và trả về các giá trị Boolean.
Bảng Logic
Có rất nhiều điều để tìm hiểu về nhánh logic của toán học, nhưng ta có thể tìm hiểu một cách có chọn lọc một số trong đó để cải thiện tư duy thuật toán khi lập trình.
Dưới đây là các bảng chân trị cho toán tử so sánh == và từng toán tử logic and , or và not . Mặc dù bạn có thể giải thích chúng, nhưng việc ghi nhớ chúng cũng có thể hữu ích vì điều đó có thể giúp quá trình ra quyết định lập trình của bạn nhanh hơn.
== Bảng logic
x | == | y | Kết quả |
---|---|---|---|
True | == | True | True |
True | == | False | False |
False | == | True | False |
False | == | False | True |
VÀ
x | AND | y | Kết quả |
---|---|---|---|
True | and | True | Thật |
True | and | False | False |
False | and | True | Sai |
False | and | False | Sai |
HOẶC
x | or | y | Kết quả |
---|---|---|---|
True | or | True | True |
True | or | False | True |
False | or | True | True |
False | or | False | False |
Phủ định
Phủ định | x | Kết quả |
---|---|---|
Phủ định | True | False |
Phủ định | False | True |
Bảng chân trị là bảng toán học phổ biến được sử dụng trong logic và rất hữu ích để ghi nhớ hoặc ghi nhớ khi xây dựng các thuật toán (hướng dẫn) trong lập trình máy tính.
Sử dụng toán tử Boolean để kiểm soát stream
Để kiểm soát stream và kết quả của một chương trình dưới dạng các câu lệnh điều khiển stream , ta có thể sử dụng một điều kiện theo sau là một mệnh đề .
Một điều kiện đánh giá xuống giá trị Boolean là True hoặc False, thể hiện một điểm mà một quyết định được đưa ra trong chương trình. Đó là, một điều kiện sẽ cho ta biết nếu một cái gì đó được đánh giá là Đúng hay Sai.
Mệnh đề là khối mã tuân theo điều kiện và ra lệnh cho kết quả của chương trình. Đó là, nó là thực hiện phần này của cấu trúc "Nếu x là True, thì hãy làm điều này."
Khối mã dưới đây cho thấy một ví dụ về các toán tử so sánh hoạt động song song với các câu lệnh có điều kiện để kiểm soát stream của một chương trình Python:
if grade >= 65: # Condition print("Passing grade") # Clause else: print("Failing grade")Chương trình này sẽ đánh giá xem điểm của mỗi học sinh là đậu hay rớt. Trong trường hợp của một học sinh có điểm là 83, câu lệnh đầu tiên sẽ đánh giá là True , và câu lệnh in điểm Passing grade sẽ được kích hoạt. Trong trường hợp học sinh có điểm 59, câu lệnh đầu tiên sẽ đánh giá là False , do đó chương trình sẽ chuyển sang thực hiện câu lệnh in gắn với biểu thức else : Failing grade .
Vì mọi đối tượng đơn lẻ trong Python đều có thể được đánh giá là Đúng hoặc Sai, Hướng dẫn kiểu PEP 8 khuyên bạn không nên so sánh giá trị với True hoặc False vì nó khó đọc hơn và thường sẽ trả về Boolean không mong muốn. Đó là, bạn nên tránh sử dụng if sammy == True: trong các chương trình của bạn. Thay vào đó, hãy so sánh sammy với một giá trị không phải Boolean khác sẽ trả về Boolean.
Toán tử Boolean đưa ra các điều kiện được dùng để quyết định kết quả cuối cùng của một chương trình thông qua các câu lệnh điều khiển stream .
Kết luận
Hướng dẫn này đi qua các toán tử so sánh và logic thuộc kiểu Boolean, cũng như các bảng sự thật và sử dụng Boolean để điều khiển stream chương trình.
Bạn có thể tìm hiểu thêm về các kiểu dữ liệu khác trong hướng dẫn “ Hiểu về kiểu dữ liệu ” của ta và có thể đọc về câu lệnh điều kiện trong hướng dẫn “ Cách viết câu lệnh có điều kiện của ta .
Tags:Các tin liên quan
Cách tạo chương trình máy tính bằng Python 3 2016-11-16 Cách tạo chương trình máy tính bằng Python 3 2016-11-16 Cách sử dụng các phương thức danh sách trong Python 3 2016-11-11 Các hàm Python 3 tích hợp để làm việc với các số 2016-11-08 Cách vẽ dữ liệu trong Python 3 bằng matplotlib 2016-11-07 Hiểu danh sách trong Python 3 2016-11-02 Cách làm Toán bằng Python 3 với Toán tử 2016-11-01 Giới thiệu về các hàm chuỗi trong Python 3 2016-11-01 Giới thiệu về các hàm chuỗi trong Python 3 2016-11-01 Giới thiệu về các hàm chuỗi trong Python 3 2016-11-01Từ khóa » Toán Tử Logic Trong Python
-
Toán Tử Logic Trong Python Và Giá Trị True False
-
Bài 9: Các Toán Tử Cơ Bản Trong Python
-
Toán Tử Trong Python - Học Lập Trình Python - Viettuts
-
Kiểu Dữ Liệu Boolean Và Các Toán Tử AND OR NOT Trong Python
-
Chi Tiết Bài Học 9.Toán Tử Trong Python - Vimentor
-
Toán Tử So Sánh Và Logic Trong Python - TEK4
-
Toán Tử Trong Python
-
Python Logical Operator - Toán Tử Logic Trong Python
-
Toán Tử Logic Trong Python Và Giá Trị True False
-
Toán Tử Trong Python - Hoclaptrinh
-
Toán Tử Logical Trong Python | Codelearn
-
Python: Các Phép Toán Cơ Bản | V1Study
-
Toán Tử Trong Python - Viblo
-
Kiểu Logic Boolean Trong Python - O₂ Education
-
Các Loại Toán Tử Trong Python - T3H
-
Các Toán Tử Trong Python - Freetuts
-
Các Loại Toán Tử (operator) được Hỗ Trợ Trong Python - Góc Học IT
-
Python 10. Các Toán Tử So Sánh Và Logic Trong Lập Trình Python
-
Bài 08. Toán Tử Trong Python (Python Operators)