Giải thích về thứ tự ưu tiên toán tử trong python. Bạn có thể sử dụng nhiều loại toán tử trong python, nhưng nếu có nhiều toán tử cùng tồn tại trong một câu lệnh, thì chương trình sẽ thực hiện các toán tử theo thứ tự ưu tiên toán tử trong python.
Bảng thứ tự ưu tiên toán tử trong python
Bảng sau đây đưa ra thứ tự ưu tiên toán tử trong python, theo thứ tự từ cao nhất đến thấp nhất:
STT | Toán tử | Ý nghĩa |
---|---|---|
1 | (expressions...) ,[expressions...] ,{key: value...} ,{expressions...} | Hiển thị tuple, list, danh sách, từ điển |
2 | x[index], x[index:index] ,x(arguments...), x.attribute | Đăng ký, cắt, gọi, tham chiếu thuộc tính |
3 | await x | Biểu thức await |
4 | ** | Lũy thừa |
5 | +x, -x, ~x | Giữ dấu, Đổi dấu,bit NOT |
6 | *, @, /, //, % | Nhân, matrix, chia, chia làm tròn và chia lấy dư |
7 | +, - | Cộng trừ |
8 | <<, >> | Phép toán dịch bit |
9 | & | bit AND |
10 | ^ | bit XOR |
11 | bit OR | |
12 | in, not in, is, is not ,<, <=, >, >=, !=, == | So sánh |
13 | not x | Boolean NOT |
14 | and | Boolean AND |
15 | or | Boolean OR |
16 | if -- else | Biểu thức điều kiện |
17 | lambda | Biểu thức Lambda |
Ví dụ như trong một biểu thức chứa các toán tử if -- else
và phép nhân và phép cộng, thì phép nhân thực hiện trước, rồi đến phép cộng , và cuối cùng đến toán tử if -- else
.
Tính toán theo thứ tự ưu tiên toán tử trong python
Trong trường hợp tồn tại nhiều toán tử trong một biểu thức, python sẽ tính toán theo thứ tự ưu tiên toán tử trong python, với hai luật sau đây:
Tính toán theo thứ tự ưu tiên toán tử trong python
Hãy cùng xem ví dụ sau đây:
num = 5 + 3 * 4 |
Khi so sánh thứ tự ưu tiên của toán tử số học +
và *
, thì do *
có thứ tự ưu tiên cao hơn nên sẽ được tính toán trước +
, và biểu thức trên sẽ được tính toán như sau:
num = 5 + 3 * 4 num = 5 + 12 num = 17
Tính toán từ trái qua phải khi thứ tự ưu tiên toán tử trong python giống nhau
Hãy xem ví dụ sau:
num = 8 / 2 * 4 |
Khi so sánh thứ tự ưu tiên của toán tử số học /
và *
, do hai toán tử số học này có thứ tự ưu tiên toán tử trong python giống nhau, nên python sẽ tính toán từ trái qua phải, và biểu thức trên sẽ được tính toán như sau:
num = 8 / 2 * 4 num = 4 * 4 num = 16
Thay đổi thứ tự tính toán các toán tử trong python
Khi muốn thay đổi thứ tự tính toán các toán tử trong python, chúng ta sẽ sử dụng dấu ngoặc đơn()
chèn vào biểu thức. Toán tử nào bên trong dấu ngoặc đơn()
sẽ được ưu tiến tính toán trước.
Hãy cùng xem ví dụ sau đây:
num1 = 5 + 3 * 4 |
Ở biểu thức num1, do không xuất hiện dấu ngoặc đơn nên python thực hiện tính toán theo mặc định.
num = 5 + 3 * 4 num = 5 + 12 num = 17
Tuy nhiên ở biểu thức num2, do xuất hiện dấu ngoặc đơn nên toán tử bên trong dấu ngoặc đơn()
sẽ được ưu tiến tính toán trước.
num2 = (5 + 3) * 4 num = 8 * 4 num = 32
Lại nữa, trong trường hợp biểu thức có nhiều dấu ngoặc đơn, thì sẽ ưu tiên thực hiện dấu ngoặc đơn bên trong trước.
num2 = (5 + (3-2)) * 4 num = (5 + 1) * 4 num = 6 * 4 num = 24
Tổng kết và thực hành
Trên đây Kiyoshi đã giải thích về thứ tự ưu tiên toán tử trong python rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành với các ví dụ sau đây.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về python trong các bài học tiếp theo nhé.
print("5 + 3 * 4 = " + str(5 + 3 * 4)) |
URL Link
HOME › python cơ bản - lập trình python cho người mới bắt đầu>>05. số trong python