Kiểu logic trong Python ký hiệu là gì

Published Mar 8th, 2018 3:22 AM 4 min read

Sau bài viết trước, chúng ta đã làm quen các câu lệnh cơ bản trong Python. Và ở bài viết này tập trung vào tìm hiểu các toán tử cơ bản trong Python và áp dụng vào làm một bài luyện tập nhỏ.

Toán tử

Trong python, các toán tử được được cũng cấp trong module Operator [Lib/operator.py] - Là một bộ các hàm chức năng, tương ứng với các toán tử của Python. Ví dụ, operator.add [x, y] tương đương với biểu thức x + y. Bạn có thể bắt gặp các hàm, kiểu như:

operator.add[a, b] operator.lt[a, b] operator.le[a, b] operator.__lt__[a, b] operator.__le__[a, b] # ...

Tên của các hàm chức năng này khá đặc biệt với các dấu gạch dưới. Tuy nhiên, có các biến thể không bắt đầu hoặc kết thúc bằng __ để cho việc sử dụng được tiện lợi.

Toán tử là một trong số các thành phần cơ bản nhất trong một ngôn ngữ lập trình. Mỗi toán tử là một ký hiệu đặc biệt như: +, -, * /, %... được map với các hàm [functions] tương ứng trong module operator vừa đề cập ở trên. Giúp cho việc sử dụng dễ dàng, đơn giản và ngắn gọn hơn.

Ví dụ: 1 + 2, thì chữ số 1 và chữ số 2 được coi là toán hạng, ký hiệu "+" được gọi là toán tử. Toán tử này sẽ thực hiện phép toán cộng hai toán hạng 1 và 2, trả về kết quả là 3. Và nó được map với hàm add[1, 2].

Dưới đây một số ví dụ cho sự mapping giữa các toán tử và các hàm chức năng trong module operator:

Operation Syntax Function
Phép cộng a + b add[a, b]
Nối chuỗi seq1 + seq2 concat[seq1, seq2]
Kiểm tra chứa chuỗi obj in seq contains[seq, obj]
Chia a / b truediv[a, b]
Chia a // b floordiv[a, b]
And các bit a & b and_[a, b]
Xor a ^ b xor[a, b]
Đảo bit ~ a invert[a]
Or a l b or_[a, b]
Luy thừa a ** b pow[a, b]
Nhân a * b mul[a, b]
Đảo dấu - a neg[a]
Cắt mảng seq[i:j] getitem[seq, slice[i, j]]
Trừ a - b sub[a, b]
Nhơ hơn a < b lt[a, b]
Nhỏ hơn hoặc bằng a = b ge[a, b]
So sánh lớn hơn a > b gt[a, b]

Phân loại

Dựa trên chức năng, toán tử trong Python được chia làm 7 nhóm:

  • Toán tử số học
  • Toán tử logic
  • Toán tử gán
  • Toán tử quan hệ [còn gọi là toán tử so sánh]
  • Toán tử membership
  • Toán tử identify
  • Toán tử thao tác bit

Nhóm toán tử số học

Gồm các toán tử có chức năng xử lý, thao tác toán học giữa các tập dữ liệu số học. Bao gồm các toán tử cho các phép toán như: cộng [+], trừ [-], nhân [*], chia [/], lũy thừa [**]...

Operation Syntax Function
Phép cộng a + b add[a, b]
Chia a / b truediv[a, b]
Chia a // b floordiv[a, b]
Luy thừa a ** b pow[a, b]
Nhân a * b mul[a, b]
Trừ a - b sub[a, b]

Ví dụ:

>>> 1+2 3 >>> 3-2 1 >>> 1.25 / 0.5 2.5 >>> 1.25 % 0.5 0.25 >>> 2**3 8

Nhóm toán tử logic

Là những toán tử thể hiện có mệnh đề AND, OR, NOT. Thường được sử dụng trong các biểu thức logic, có thể đi kèm với các toán tử quan hệ.

  • and: Phép Và. Nếu cả hai điều kiện là true thì kết quả sẽ là true
  • or: Phép Hoặc. Nếu một trong hai điều kiện là true thì kết quả là true
  • not: Phép phủ định. Được sử dụng để đảo ngược trạng thái logic của toán hạng

Toán tử quan hệ

Là những toán tử dùng để kiểm tra mối tương quan giữa các toán hạng chính là những phép so sánh như: so sánh bằng, lớn hơn, nhỏ hơn... Một số ký hiệu toán tử quan hệ:

Operation Syntax Function
Nhơ hơn a < b lt[a, b]
Nhỏ hơn hoặc bằng a = b ge[a, b]
So sánh lớn hơn a > b gt[a, b]

Nếu thấy nội dung này bổ ích, hãy mời tôi một tách cà phê nha! //kimyvgy.webee.asia


All Rights Reserved

Thứ năm, 17/11/2016 | 00:00 GMT+7

Kiểu dữ liệu Boolean có thể là một trong hai giá trị, hoặc Đúng hoặc Sai . Ta sử dụng Boolean trong lập trình để so sánh và kiểm soát stream của chương trình.

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
Lớn hơn
= 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 = 8

Ta 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]

Output

x == y: False x != y: True x < y: True x > y: False x = y: False

Theo 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: False

Chuỗ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: True

Bạ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: True

Khố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
Đú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 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.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

True

Cá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-01

Video liên quan

Chủ Đề