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