Toán tử trong Python

Mỗi ngôn ngữ lập trình khác nhau lại có một tập toán tử khác nhau, tuy nhiên, nếu ai đã học qua lập trình sẽ thấy các hệ toán tử thường khá tương đồng với nhau, đặc biệt là ở các ngôn ngữ như C++, Java và Python. Bài viết dưới đây eLib.VN sẽ giới thiệu tới các bạn các loại toán tử hữu ích trong Python cùng các ví dụ minh họa cụ thể. Cùng theo dõi nhé!

Toán tử trong Python

Python hỗ trợ các loại toán tử sau:

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

1. Toán tử số học trong Python

Giả sử biến a = 10 và b = 20, ta có:

Toán tử Mô tả Ví dụ
+ Phép cộng. a + b = 30
- Phép trừ. a – b = -10
* Phép nhân a * b = 200
/ Phép chia lấy phần nguyên. b / a = 2
% Phép chia lấy phần dư. b % a = 0
** Exponent Phép lấy số mũ (ví dụ 2**3 cho kết quả là 2 mũ 3 = 8). a**b = 10 mũ 20
// Floor Division - Phép chia toán hạng trong đó kết quả là thương số trong đó các chữ số sau dấu thập phân được loại bỏ. Nhưng nếu một trong các toán hạng là âm, kết quả sẽ được làm tròn, được làm tròn từ 0 (hướng tới vô cực âm) 9//2 = 4 và 9.0//2.0 = 4.0, -11//3 = -4, -11.0//3 = -4.0

Ví dụ:

#!/usr/bin/python

a = 21
b = 10
c = 0

c = a + b
print "Line 1 - Value of c is ", c

c = a - b
print "Line 2 - Value of c is ", c

c = a * b
print "Line 3 - Value of c is ", c

c = a / b
print "Line 4 - Value of c is ", c

c = a % b
print "Line 5 - Value of c is ", c

a = 2
b = 3
c = a ** b
print "Line 6 - Value of c is ", c

a = 10
b = 5
c = a //b
print "Line 7 - Value of c is ", c

Kết quả:

Line 1 - Value of c is 31
Line 2 - Value of c is 11
Line 3 - Value of c is 210
Line 4 - Value of c is 2
Line 5 - Value of c is 1
Line 6 - Value of c is 8
Line 7 - Value of c is 2

2. Toán tử quan hệ trong Python

Python hỗ trợ các toán tử quan hệ (toán tử so sánh) sau:

Giả sử biến a = 10 và b = 20, ta có:

Toán tử Mô tả Ví dụ
== So sánh bằng. (a == b) cho kết quả false.
!= So sánh không bằng. (a != b) cho kết quả true.
<> Không bằng (tương tự !=) (a <> b) cho kết quả true.
> Lớn hơn. (a > b) cho kết quả false.
< Nhỏ hơn. (a < b) cho kết quả true.
>= Lớn hơn hoặc bằng. (a >= b) cho kết quả false.
<= Nhỏ hơn hoặc bằng. (a <= b) cho kết quả true.

Ví dụ:

a = 21
b = 10
c = 0

if (a == b):
  print "Line 1 - a is equal to b"
else :
  print "Line 1 - a is not equal to b"

if (a != b):
  print "Line 2 - a is not equal to b"
else :
  print "Line 2 - a is equal to b"

if (a < > b):
  print "Line 3 - a is not equal to b"
else :
  print "Line 3 - a is equal to b"

if (a < b):
  print "Line 4 - a is less than b"
else :
  print "Line 4 - a is not less than b"

if (a > b):
  print "Line 5 - a is greater than b"
else :
  print "Line 5 - a is not greater than b"

a = 5;
b = 20;
if (a <= b):
  print "Line 6 - a is either less than or equal to  b"
else :
  print "Line 6 - a is neither less than nor equal to  b"

if (b >= a):
  print "Line 7 - b is either greater than  or equal to b"
else :
  print "Line 7 - b is neither greater than  nor equal to b"

Kết quả:

Line 1 - a is not equal to b
Line 2 - a is not equal to b
Line 3 - a is not equal to b
Line 4 - a is not less than b
Line 5 - a is greater than b
Line 6 - a is either less than or equal to b
Line 7 - b is either greater than or equal to b

3. Toán tử gán trong Python

Python cung cấp các toán tử gán như sau:

Toán tử Mô tả Ví dụ
= Phép gán bằng. c = a + b, gán a + b cho c
+= Phép gán cộng. c += a tương đương c = c + a
-= Phép gán trừ. c -= a tương đương c = c - a
*= Phép gán nhân. c *= a tương đương c = c * a
/= Phép gán chia lấy phần nguyên. c /= a tương đương c = c / a
%= Phép gán chia lấy phần dư. c %= a tương đương c = c % a
**= Phép gán lũy thừa. c **= a is tương đương c = c ** a
//= Phép gán chia floor. c //= a is tương đương to c = c // a

Ví dụ:

#!/usr/bin/python

a = 21
b = 10
c = 0

c = a + b
print "Line 1 - Value of c is ", c

c += a
print "Line 2 - Value of c is ", c

c *= a
print "Line 3 - Value of c is ", c

c /= a
print "Line 4 - Value of c is ", c

c = 2
c %= a
print "Line 5 - Value of c is ", c

c **= a
print "Line 6 - Value of c is ", c

c //= a
print "Line 7 - Value of c is ", c

Kết quả:

Line 1 - Value of c is 31
Line 2 - Value of c is 52
Line 3 - Value of c is 1092
Line 4 - Value of c is 52
Line 5 - Value of c is 2
Line 6 - Value of c is 2097152
Line 7 - Value of c is 99864

4. Toán tử logic trong Python

Python cung cấp các toán tử gán như sau. Giả sử a = 10 và b = 20, ta có:

Toán tử Mô tả Ví dụ
and Nếu cả 2 biểu thức là true thì cho kết quả true. (a > 9 and b > 19) là true.
or Nếu 1 trong 2 biểu thức là true thì cho ra kết quả true. (a > 9 or b > 100) is true.
not Được sử dụng để đảo ngược logic của biểu thức. Not(a > 9) là false.
 

5. Toán tử membership trong Python

Python cung cấp 2 toán tử membership sau, giả sử x = 10 và y = [10, 20, 30], ta có:

Toán tử Mô tả Ví dụ
in Trả về true nếu tìm thấy biến a trong tập các giá trị sau in, ngược lại trả về false. x in y, trả về true .
not in Trả về false nếu tìm thấy biến a trong tập các giá trị sau in, ngược lại trả về false. x in y, trả về false. Vì x tồn tại trong tập y.

Ví dụ:

#!/usr/bin/python

a = 10
b = 20
list = [1, 2, 3, 4, 5];

if (a in list):
  print "Line 1 - a is available in the given list"
else :
  print "Line 1 - a is not available in the given list"

if (b not in list):
  print "Line 2 - b is not available in the given list"
else :
  print "Line 2 - b is available in the given list"

a = 2
if (a in list):
  print "Line 3 - a is available in the given list"
else :
  print "Line 3 - a is not available in the given list"

Kết quả:

Line 1 - a is not available in the given list
Line 2 - b is not available in the given list
Line 3 - a is available in the given list

6. Toán tử nhận dạng (identify) trong Python

Toán tử nhận dạng so sánh vị trí bộ nhớ của hai đối tượng. Có hai toán tử nhận dạng được giải thích bên dưới:

Toán tử Mô tả Ví dụ
is Trả về true nếu 2 biến cùng trỏ về 1 đối tượng giống nhau. x is y, trả về true nếu id(x) = id(y).
is not Evaluates to false if the variables on either side of the operator point to the same object and true otherwise. x is not y, trả về false nếu id(x) != id(y).

Ví dụ:

#!/usr/bin/python

a = 20
b = 20

if ( a is b ):
   print "Line 1 - a and b have same identity"
else:
   print "Line 1 - a and b do not have same identity"

if ( id(a) == id(b) ):
   print "Line 2 - a and b have same identity"
else:
   print "Line 2 - a and b do not have same identity"

b = 30
if ( a is b ):
   print "Line 3 - a and b have same identity"
else:
   print "Line 3 - a and b do not have same identity"

if ( a is not b ):
   print "Line 4 - a and b do not have same identity"
else:
   print "Line 4 - a and b have same identity"

Kết quả:

Line 1 - a and b have same identity
Line 2 - a and b have same identity
Line 3 - a and b do not have same identity
Line 4 - a and b do not have same identity

7. Toán tử thao tác bit trong Python

Toán tử thao tác bit làm việc trên các bit và thực hiện các hoạt động theo từng bit. Giả sử a = 60 và b = 13 thì định dạng nhị phân của chúng lần lượt là:

a = 0011 1100

b = 0000 1101

-----------------

a&b = 0000 1100

a|b = 0011 1101

a^b = 0011 0001

~a = 1100 0011

Python hỗ trợ các toán tử thao tác bit sau:

Toán tử Mô tả Ví dụ
& Sao chép một bit tới kết quả nếu bit này tồn tại trong cả hai toán hạng (a & b) cho kết quả 0000 1100
| Sao chép một bit tới kết quả nếu bit này tồn tại trong bất kỳ toán hạng nào (a | b) = 61 (tức là 0011 1101)
^ Sao chép bit nếu nó được set (chỉ bit 1) chỉ trong một toán hạng (a ^ b) = 49 (tức là 0011 0001)
~ Đây là toán tử một ngôi, được sử dụng để đảo ngược bit (~a ) = -61 (tức là 1100 0011)
<< Toán tử dịch trái nhị phân. Giá trị của toán hạng trái được dịch chuyển sang trái một số lượng bit đã được xác định bởi toán hạng phải a << = 240 (tức là 1111 0000)
>> Toán tử dịch phải nhị phân. Giá trị của toán hạng trái được dịch chuyển sang phải một số lượng bit đã được xác định bởi toán hạng phải a >> = 15 (tức là 0000 1111)

Ví dụ:

#!/usr/bin/python

a = 60            # 60 = 0011 1100
b = 13            # 13 = 0000 1101
c = 0

c = a & b;        # 12 = 0000 1100
print "Line 1 - Value of c is ", c

c = a | b;        # 61 = 0011 1101
print "Line 2 - Value of c is ", c

c = a ^ b;        # 49 = 0011 0001
print "Line 3 - Value of c is ", c

c = ~a;           # -61 = 1100 0011
print "Line 4 - Value of c is ", c

c = a << 2;       # 240 = 1111 0000
print "Line 5 - Value of c is ", c

c = a >> 2;       # 15 = 0000 1111
print "Line 6 - Value of c is ", c

Kết quả:

Line 1 - Value of c is 12
Line 2 - Value of c is 61
Line 3 - Value of c is 49
Line 4 - Value of c is -61
Line 5 - Value of c is 240
Line 6 - Value of c is 15

8. Thứ tự ưu tiên của các toán tử trong Python

Bạn cần chú ý thứ tự ưu tiên của các toán tử để mang lại kết quả như mong muốn trong quá trình làm việc. Bảng dưới đây liệt kê tất cả các toán tử trong Python với thứ tự ưu tiên từ cao xuống thấp.

Toán tử Mô tả
** Toán tử mũ
~ + - Phần bù; phép cộng và trừ một ngôi (với tên phương thức lần lượt là +@ và -@)
* / % // Phép nhân, chia, lấy phần dư và phép chia //
+ - Phép cộng và phép trừ
>> << Dịch bit phải và dịch bit trái
& Phép Và Bit  
^ | Phép XOR và OR
<= < > >= Các toán tử so sánh
<> == != Các toán tử so sánh bằng
= %= /= //= -= += *= **= Các toán tử gán
is is not Các toán tử Identity
in not in Các toán tử Membership
not or and Các toán tử logic
 
#!/usr/bin/python

a = 20
b = 10
c = 15
d = 5
e = 0

e = (a + b) * c / d       #( 30 * 15 ) / 5
print "Value of (a + b) * c / d is ",  e

e = ((a + b) * c) / d     # (30 * 15 ) / 5
print "Value of ((a + b) * c) / d is ",  e

e = (a + b) * (c / d);    # (30) * (15/5)
print "Value of (a + b) * (c / d) is ",  e

e = a + (b * c) / d;      #  20 + (150/5)
print "Value of a + (b * c) / d is ",  e

Kết quả:

Value of (a + b) * c / d is 90
Value of ((a + b) * c) / d is 90
Value of (a + b) * (c / d) is 90
Value of a + (b * c) / d is 50

Trên đây là bài viết và ví dụ cụ thể của eLib.VN về toán tử trong Python. Bạn đọc có thể áp dụng để lập trình nhanh chóng và hiệu quả hơn. Chúc các bạn thành công!

Như vậy là chúng ta đã hoàn thành nội dung "Giới thiệu về lập trình Python". Để củng cố và nắm vững nội dung đã học, mời bạn cùng thử sức với  "Bộ Câu hỏi Trắc Nghiệm Python có đáp án chi tiết"

Trắc Nghiệm

Ngày:23/10/2020 Chia sẻ bởi:Nguyễn Minh Duy

CÓ THỂ BẠN QUAN TÂM