Toán tử trong Python

Toán tử là các cấu trúc có thể thao tác giá trị của các toán hạng.

Xét biểu thức 4 + 5 = 9. Ở đây, 4 và 5 được gọi là toán hạng và + được gọi là toán tử.

Các loại 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)

(**) - 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

#!/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