PEMDAS
là P
, E
, MD
, AS
; Sự nhân và phân chia có cùng mức độ ưu tiên, và tương tự cho việc bổ sung và trừ. Khi một nhà điều hành phân chia xuất hiện trước khi nhân, bộ phận đi trước.
Các toán tử python thứ tự được thực thi trong được điều chỉnh bởi sự ưu tiên của nhà điều hành và tuân theo các quy tắc tương tự. Các nhà khai thác có mức độ ưu tiên cao hơn được thực hiện trước những người có ưu tiên thấp hơn, nhưng các nhà khai thác có ưu tiên phù hợp khi họ ở trong cùng một nhóm.
Đối với 10-7//2*3+1
, bạn có 2 lớp toán tử, từ thấp nhất đến Higest:
+, -
[tương quan vớiAS
== Bổ sung và trừ]*, @, /, //, %
[tương quan vớiMD
, vì vậy nhân và chia].
Vì vậy, PEMDAS
1 và PEMDAS
2 được thực hiện trước; Sự nhân và phân chia rơi trong cùng một nhóm, không phải là một thứ tự đã đặt ở đây [MD
không có nghĩa là phép nhân xuất hiện trước khi chia]:
10 - [[7 // 2] * 3] + 1
Vì vậy, PEMDAS
4 được thực hiện trước tiên, theo sau là phép nhân bằng 3. Sau đó, bạn nhận được phép trừ từ mười và thêm một ở cuối.
Chúng tôi đã đưa ra một vấn đề không ảnh hưởng đến trường hợp cụ thể của bạn, nhưng rất quan trọng để viết các chương trình Python thực sự. PEMDA không thực sự về thứ tự hoạt động; Nó không quyết định những thứ đặt hàng được đánh giá. Đó thực sự là về nhóm đối số. PEMDA nói rằng PEMDAS
5 được đánh giá là PEMDAS
6, nhưng nó không cho biết liệu PEMDAS
7 hay PEMDAS
8 được đánh giá trước.
Trong toán học, không quan trọng những gì bạn đánh giá trước, miễn là bạn tôn trọng nhóm đối số. Trong Python, nếu bạn đã đánh giá PEMDAS
9 và P
0 đầu tiên trong P
1 chỉ vì chúng ở ngoặc đơn, bạn có thể nhận được một kết quả hoàn toàn khác, vì các chức năng Python có thể có tác dụng phụ.
Đánh giá biểu hiện Python chủ yếu hoạt động từ trái sang phải. Ví dụ, trong P
2, thứ tự đánh giá diễn ra như sau:
P
3PEMDAS
9P
5 đầu tiên, bây giờ các đối số của nó đã sẵn sàngP
0P
7PEMDAS
2, bây giờ các đối số của nó đã sẵn sàngP
5 thứ hai, bây giờ các đối số của nó đã sẵn sàng
Điều này mặc dù có mức độ ưu tiên cao của PEMDAS
2 và dấu ngoặc đơn xung quanh phép nhân.
Bốn hoạt động cơ bản trong Python là gì? Bảng sau đây tóm tắt các toán tử ưu tiên từ cao nhất đến thấp nhất. Một bảng hoàn chỉnh cho toàn bộ ngôn ngữ có thể được tìm thấy trong tài liệu Python. Mức độ Loại Người vận hành 7[high] số mũ ** 6 phép nhân *,/, //,% 5 phép cộng +,- 4 quan hệ ==,! =, =,>, 3 hợp lý không phải 2 hợp lý không phải 1[low] hợp lý không phải và hoặc
Ghi chú
Không gian làm việc này được cung cấp cho sự thuận tiện của bạn. Bạn có thể sử dụng cửa sổ ActiveCode này để thử bất cứ thứ gì bạn thích.
Lỗi phổ biến!
Học sinh thường kết hợp không chính xác các nhà khai thác trong và hoặc người vận hành. Ví dụ: nếu họ muốn kiểm tra xem chữ X có nằm trong một trong hai biến thì họ có xu hướng viết nó theo cách sau không: E
4
- [[5*3]> 10] và [[4+6] == 11]
- Có, * và + có quyền ưu tiên cao hơn, theo sau là> và ==, và sau đó là từ khóa "và"
- [5*[3> 10]] và [4 + [6 == 11]]
- Toán tử số học [*, +] có ưu tiên cao hơn các toán tử so sánh [>, ==]
- [[[[5*3]> 10] và 4] +6] == 11
- Nhóm này giả định Python chỉ đơn giản là đánh giá từ trái sang phải, điều này không chính xác. Nó tuân theo mức độ ưu tiên được liệt kê trong bảng trong phần này.
- [[5*3]> [10 và [4+6]]] == 11
- Nhóm này giả định rằng "và" có quyền ưu tiên cao hơn ==, điều này không đúng.
Được viết theo cách này, mã không phải lúc nào cũng làm những gì mà lập trình viên dự định. Điều này là do toán tử E
5 chỉ ở phía bên trái của câu lệnh OR. Nó không được thực hiện ở cả hai phía của tuyên bố. Để kiểm tra đúng X rằng X bên trong một trong hai biến, toán tử trong phải được sử dụng ở cả hai phía trông như thế này:
Đây là một hình ảnh động cho biểu thức trên:
5 * 3> 10 và 4 + 6 == 11
Bạn đã thử các hoạt động trên trang này of activities on this page