Trong hướng dẫn Python cuối cùng của chúng tôi, chúng tôi đã thảo luận về Python sys Module. Hôm nay, chúng ta sẽ xem Python Operator Precedence Với một biểu thức có nhiều toán tử, bạn sẽ xử lý nó như thế nào? . What is 2+3*4%5-1? 13 or 3? To answer such questions, you will need to know what comes first. Show
Trong hướng dẫn Ưu tiên toán tử Python này, chúng tôi giải quyết vấn đề này. Hơn nữa, chúng ta sẽ học PEMDAS và đoản mạch trong python. Cuối cùng, chúng ta sẽ thảo luận về tính kết hợp của Toán tử Python Vì vậy, hãy bắt đầu hướng dẫn Ưu tiên toán tử Python Ưu tiên toán tử Python – PEMDAS & Đoản mạch Đầu tiên, hãy ôn lại một chút về Python Operator Bảng ưu tiên toán tử PythonHãy xem bảng sau về Ưu tiên toán tử Python Mô tả toán tử () (Mức ưu tiên cao nhất)Dấu ngoặc đơn (nhóm)f(args…)Gọi hàm(biểu thức…), [biểu thức…], {key. value…}, {expressions…}Hiển thị ràng buộc hoặc bộ, hiển thị danh sách, hiển thị từ điển, hiển thị bộx[chỉ mục], x[chỉ mục. chỉ mục], x(đối số), x. thuộc tínhĐăng ký, cắt, gọi, tham chiếu thuộc tínhawait xĐang chờ biểu thức**Lũy thừa+x+x, –x, ~xDương, âm, theo bit NOT*, @, /, //, %Phép nhân, chia, dư+, –Cộng, trừ<Dịch chuyển bit&Bitwise AND^XOR theo bit. Bitwise HOẶCvào, không vào, là, không phải,<>,. =, ==So sánh, tư cách thành viên, danh tínhnot xBoolean NOT<andBoolean ANDorBoolean ORif- elseConditional expressionlambda (Lowest precedence)Lambda expression Ở đây, các toán tử trong một ô đánh giá từ trái sang phải và các nhóm lũy thừa từ phải sang trái Mức ưu tiên thấp nhất trong Toán tử Python là ít ràng buộc nhất và Mức ưu tiên cao nhất trong Toán tử Python là nhiều nhất Cũng đúng là chúng tôi quan sát mức độ ưu tiên giống nhau đối với việc so sánh, kiểm tra tư cách thành viên và kiểm tra danh tính. Chúng cũng có tính năng xâu chuỗi từ trái sang phải Biểu thức Python là gì?Trước khi chúng tôi có thể cho bạn biết toán tử nào có trước, bạn muốn được giới thiệu về các biểu thức. Một biểu thức là sự kết hợp của các giá trị, biến, toán tử và lệnh gọi hàm Đáng chú ý, trình thông dịch Python có thể đánh giá một biểu thức hợp lệ. Tại sao chúng ta không lấy một ví dụ? >>> 4+3 đầu ra 7 4+3 là một biểu thức với một toán tử. Chúng ta cũng có thể đưa vào nhiều hơn một. Các quy tắc ưu tiên chỉ cho chúng ta cách thực hiện theo một đơn đặt hàng. Phép chia có độ ưu tiên cao hơn phép cộng >>> 3+3/3 đầu ra 4. 0 Tuy nhiên, khi chúng ta sử dụng dấu ngoặc đơn, chúng ta có thể thay đổi thứ tự thực hiện tại đây >>> (3+3)/3 đầu ra 2. 0 Điều chúng tôi kết luận ở đây là bằng cách sử dụng dấu ngoặc đơn, chúng tôi có thể buộc các toán tử có mức độ ưu tiên thấp hơn chạy trước Hoặc chúng ta có thể nói rằng khi hai toán tử dùng chung một toán hạng, toán tử có quyền ưu tiên cao hơn sẽ đi trước Ưu tiên toán tử Python – PEMDASNếu bạn đang đọc về Python trên trang này, chắc chắn bạn đã nghe nói về BODMAS ở đâu đó trong hành trình của bạn cho đến nay (toán học, trường học). Tuy nhiên, trong Python, chúng ta bắt gặp PEMDAS Một bản ghi nhớ cần nhớ sẽ là “Xin thứ lỗi cho dì Susie thân mến của tôi”. Hãy lấy một ví dụ >>> ((((13+5)*2)-4)/2)-13 đầu ra 3. 0 Làm thế nào điều đó xảy ra? Ưu tiên toán tử Python – Đoản mạchPython luôn đánh giá toán hạng bên trái trước toán hạng bên phải- ngay cả trong các đối số hàm. Đối với các biểu thức có các phép tính và hoặc , nó sử dụng đoản mạch. Điều này có nghĩa là nó chỉ đánh giá toán hạng thứ hai cho đến khi cần. Do đó, các tuyên bố như vậy có thể hoạt động đáng tin cậy. Ưu tiên toán tử Python – Đoản mạch >>> if(s!=None) and (len(s)<10): pass Đoản mạch là dừng thực hiện phép toán Boolean nếu chúng ta đã đi đến giá trị thực của biểu thức. Hãy xem cái này
a. Ngắn mạch với và/hoặcXem những gì điều này mang lại cho chúng tôi >>> 0 or "Hello" and 1 đầu ra 1 Điều này không cung cấp cho chúng tôi "Xin chào", nhưng 1, bởi vì b. Đoản mạch với all()/any()Điều này cũng hoạt động với các hàm all() và any() >>> def check(i): return i >>> all(check(i) for i in [1,1,0,0,3]) đầu ra Sai Điều này dừng ở Sai đầu tiên mà nó nhận được (0 ở vị trí thứ ba) và trả về Sai >>> any(check(i) for i in [0,0,0,1,3]) đầu ra Thật Điều này dừng ở giá trị True đầu tiên mà nó nhận được (số 1 ở vị trí thứ tư) và trả về giá trị True c. Đoản mạch với các toán tử có điều kiệnXem cách điều này diễn ra với các toán tử có điều kiện như > và < ________số 8_______đầu ra Sai Điều này dừng ở 7>8 và trả về Sai d. Đoản mạch với các nhà khai thác ternaryBây giờ, hãy xem xét biểu thức sau đây là toán tử bậc ba . >>> print("One") if print("Two") else print("Three") đầu ra Hai chuyện gì xảy ra ở đây thế? >>> 3+3/30 đầu ra Hai Vì nó là Sai, nên nó không đánh giá print(“One”) và chỉ đơn giản đánh giá print(“Ba”) Tính liên kết của các toán tử trong PythonTrong bảng trên, nhiều ô có nhiều hơn một toán tử. Những chia sẻ ưu tiên. Vì vậy, sau đó, mà để đánh giá đầu tiên? Hiệp hội đến để giải cứu ở đây. Nhiều toán tử có tính kết hợp từ trái sang phải a. Toán tử liên kết
Ví dụ: hãy xem xét các toán tử nhân (*) và chia sàn (//). Xem cách toán hạng bên trái đánh giá trước >>> 3+3/31 đầu ra 3 >>> 3+3/32 đầu ra 3 Mặc dù cả hai đều cho chúng ta cùng một kết quả, nhưng chúng thực hiện theo những cách khác nhau. Xem như thế nào
Bây giờ, hãy thử điều này trên lũy thừa >>> 3+3/33 đầu ra 64 Và bây giờ không có dấu ngoặc đơn >>> 3+3/34 đầu ra 512 Điều này là do điều này tương đương với b. Toán tử không liên kếtToán tử gán và so sánh không liên kết. Điều này có nghĩa là x Vì vậy, đây là tất cả trong Python Operator Precedence. Hy vọng bạn thích lời giải thích của chúng tôi Câu hỏi phỏng vấn Python về Quyền ưu tiên của nhà điều hành
Phần kết luậnDo đó, trong hướng dẫn Ưu tiên toán tử Python này, chúng ta đã tìm hiểu về ưu tiên toán tử, PEMDAS và đoản mạch Thứ tự ưu tiên của các toán tử là gì?Toán tử logic-AND ( && ) có độ ưu tiên cao hơn toán tử logic-OR (. ) , vì vậy q && r được nhóm thành một toán hạng. Vì các toán tử logic đảm bảo đánh giá các toán hạng từ trái sang phải, nên q && r được đánh giá trước s--.
Toán tử nào trong Python có độ ưu tiên cao nhất?Python tuân theo các quy tắc ưu tiên giống như toán học đối với các toán tử toán học của nó. Dấu ngoặc đơn có mức ưu tiên cao nhất và có thể được sử dụng để buộc một biểu thức đánh giá theo thứ tự bạn muốn. Vì các biểu thức trong ngoặc đơn được đánh giá trước, nên 2 * (3-1) là 4 và (1+1)**(5-2) là 8.
Thứ tự các hoạt động trong Python là gì?PEMDAS là P , E , MD , AS ; . Khi toán tử chia xuất hiện trước phép nhân, phép chia đi trước. Thứ tự các toán tử Python được thực thi được điều chỉnh bởi thứ tự ưu tiên của toán tử và tuân theo các quy tắc tương tự
Ưu tiên của các toán tử trong Python với một ví dụ là gì?Thứ tự ưu tiên của toán tử ảnh hưởng đến cách một biểu thức được đánh giá. Ví dụ: x = 7 + 3 * 2; . . |