Toán tử là các biểu tượng cụ thể mà thực hiện một số hoạt động trên một số giá trị và cho ra một kết quả. Ví dụ biểu thức 4 + 5 = 9, trong đó 4 và 5 được gọi là các toán hạng và dấu + được gọi là toán tử.
Nội dung chính
- Các loại toán tử trong Python
- 1. Toán tử số học trong Python
- 2. Toán tử quan hệ trong Python
- 3. Toán tử gán trong Python
- 4. Toán tử logic trong Python
- 5. Toán tử membership trong Python
- 6. Toán tử nhận dạng (identify) trong Python
- 7. Toán tử thao tác bit trong Python
- 8. Thứ tự ưu tiên của các toán tử trong Python
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 |
** 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
Link tham khảo:
https://www.tutorialspoint.com/python/python_basic_operators.htm