Hompythonexplain Các quy tắc ưu tiên được sử dụng bởi Python để đánh giá một biểu thức
PythonExplain the rules of precedence used by python to evaluate an expression Ngày 09 tháng 12 năm 2020 lúc 8:45 sáng
Quy tắc ưu tiên: P-E-D-M-A-S P-E-D-M-A-S
Thứ tự các hoạt động trong biểu thức: • dấu ngoặc đơn [] sau đó là số mũ ** • Sau đó, các toán tử phân chia, nhân và mô đun có cùng thứ hạng được ưu tiên. • sau đó bổ sung và trừ.
• Parenthesis [ ] then exponentiation **
• Then division, multiplication and modulus operators have same rank in precedence.
• Then addition and subtraction.
Lệnh ưu tiên: Khi hai nhà khai thác chia sẻ một toán hạng, nhà điều hành có quyền ưu tiên cao hơn trước.
Sự kết hợp: Khi hai toán tử chia sẻ một toán hạng và các toán tử có cùng mức độ ưu tiên, thì biểu thức được đánh giá theo sự kết hợp của các toán tử. *, / và % có cùng thứ hạng và sự kết hợp là từ trái sang phải
Tương tự + và - có cùng thứ hạng và tính kết hợp là từ trái sang phải /2]4.0 >>> 10%2+3- [5-3]/4 #10%2 là 0 và [5-3]/4 là 0 trong số nguyên, vì vậy 0+3+0 sẽ là 33
But ** exponentiation has associativity from right to left.
Same rank arithmetic operators are processed from left to right.
>>>
10/5/2
1.0
>>> 10/[5/2]
4.0
>>> 10%2+3-[5-3]/4 #10%2 is 0 and [5-3]/4 is 0 in integer, so 0+3+0 will be 3
3
>>> 5*1 ** 35 >>> 3 ** 2 ** 3 # Đó là 3 đến Công suất 9 chứ không phải 9 đến Công suất 36561 5 >>> 3**2**3 # It is 3 to the power 9 and not 9 to the power 3
6561
>>>>>> -5 ** 2-25 >>> [-5] ** 225
>>> -5**2
-25
>>>
[-5]**2
25
>> -11%9 #Remainder hoặc toán tử modulo trong Python? 7
7
Đôi khi, sự ưu tiên của trật tự được xác định trong một ngôn ngữ không phù hợp với các chuẩn mực toán học. Điều này được thừa nhận là sự lựa chọn thiết kế của Hồi giáo với logic của các nhà phát triển. This quirk is acknowledged as “Design Choice” with developers logic.
Thứ tự đánh giá trong Python, toán hạng bên trái luôn được đánh giá trước toán hạng bên phải. Điều đó cũng áp dụng cho các đối số chức năng. Python sử dụng ngắn mạch khi đánh giá các biểu thức liên quan đến AND hoặc hoặc các toán tử.rules of precedence. Python follows the same precedence rules for its mathematical operators that mathematics does. Khi nhiều hơn một toán tử xuất hiện trong một biểu thức, thứ tự đánh giá phụ thuộc vào các quy tắc ưu tiên. Python tuân theo các quy tắc ưu tiên tương tự cho các nhà khai thác toán học mà toán học làm. Số mũ có quyền ưu tiên cao nhất tiếp theo, vì vậy Nhân hóa và cả hai toán tử phân chia có cùng mức độ ưu tiên, cao hơn so với cộng và trừ, cũng có cùng mức độ ưu tiên. Vì vậy, Các nhà khai thác có cùng mức độ được đánh giá từ trái sang phải. Trong đại số, chúng tôi nói rằng họ là liên kết trái. Vì vậy, trong biểu thức Ghi chú Do một số câu đố lịch sử, một ngoại lệ đối với quy tắc liên kết từ trái sang phải là nhà điều hành số mũ Ghi chú Đây là một cách thứ hai mà dấu ngoặc đơn được sử dụng trong Python. Cách đầu tiên mà bạn đã thấy là [] chỉ ra một cuộc gọi chức năng, với các đầu vào đi vào bên trong dấu ngoặc đơn. Làm thế nào Python có thể cho biết khi dấu ngoặc đơn quy định để gọi một hàm và khi chúng chỉ buộc thứ tự hoạt động cho các biểu thức toán tử mơ hồ?2**1+1
là 3 và không phải 4, và 3*1**3
là 3 và không 27. Bạn có thể giải thích tại sao không?2*3-1
mang lại 5 thay vì 4 và 5-2*2
là 1, không phải 6.6-3+2
, phép trừ xảy ra trước, mang lại 3. Sau đó, chúng tôi thêm 2 để nhận kết quả 5. Nếu các hoạt động được đánh giá từ phải sang trái, kết quả sẽ là 6-[3+2]
, là 1.**
. Một gợi ý hữu ích là luôn luôn sử dụng dấu ngoặc đơn để buộc chính xác thứ tự bạn muốn khi có liên quan:
Câu trả lời là nếu có một biểu thức ở bên trái của dấu ngoặc đơn đánh giá thành một đối tượng hàm, thì dấu ngoặc đơn biểu thị một cuộc gọi chức năng, và nếu không thì không. Bạn sẽ phải làm quen với việc thực hiện suy luận tương tự khi bạn nhìn thấy dấu ngoặc đơn: Đây có phải là một cuộc gọi chức năng hay chỉ chỉ định ưu tiên?
Kiểm tra việc hiểu của bạn
- 14
- Sử dụng dấu ngoặc đơn, biểu thức được đánh giá là [2*5] trước tiên, sau đó [10 // 3], sau đó [16-3], và sau đó [13+1].
- 24
- Hãy nhớ rằng * đã được ưu tiên hơn -.
- 3
- Hãy nhớ rằng // đã được ưu tiên hơn -.
- 13.667
- Hãy nhớ rằng // không phân chia số nguyên.
Giá trị của biểu thức sau:
Đây là một hình ảnh động cho biểu thức trên:
Bạn đã thử các hoạt động trên trang này of activities on this page