Thứ tự ưu tiên của các toán tử trong python là gì?

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.

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

Thứ tự ưu tiên của các toán tử trong python là gì?

Ư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ử Python

Hã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 – PEMDAS

Nế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
dấu ngoặc đơn
lũy thừa
Phép nhân
Phân công
Phép cộng
phép trừ

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?
13+5 cho ta 18
18*2 cho ta 36
36-4 cho ta 32
32/2 cho ta 16. 0 #Lưu ý rằng phép chia cho chúng ta số float.
16-13 cho ta 3. 0

Ưu tiên toán tử Python – Đoản mạch

Python 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 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.

Thứ tự ưu tiên của các toán tử trong python là gì?

Ư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

  • X hoặc Y- Chỉ đánh giá Y nếu X sai;
  • X và Y- Chỉ đánh giá Y nếu X đúng;

a. Ngắn mạch với và/hoặc

Xem 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ì
0 hoặc “Xin chào” cho chúng tôi “Xin chào”
“Xin chào” và 1 cho chúng tôi 1

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ện

Xem 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 ternary

Bâ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
Số ba

chuyện gì xảy ra ở đây thế?
Đầu tiên Python kiểm tra điều kiện print(“Two”). Khi đánh giá điều này, nó in ra “Hai”. Ngoài ra, giá trị Boolean cho điều này là Sai

>>> 3+3/3
0

đầu ra

Hai
Sai

Vì nó là Sai, nên nó không đánh giá print(“One”) và chỉ đơn giản đánh giá print(“Ba”)
Do đó, đầu ra cuối cùng chúng tôi nhận được là
Hai
Số ba

Tính liên kết của các toán tử trong Python

Trong 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

  • Phép nhân (*) và phép chia tầng (//)

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/3
1

đầu ra

3

>>> 3+3/3
2

đầ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
Đối với ví dụ đầu tiên
3 * 5 cho ta 15
15//4 cho ta 3
Đối với ví dụ thứ hai
5//4 cho ta 1
3*1 cho ta 3

  • Lũy thừa (**)

Bây giờ, hãy thử điều này trên lũy thừa

>>> 3+3/3
3

đầu ra

64

Và bây giờ không có dấu ngoặc đơn

>>> 3+3/3
4

đầu ra

512

Điều này là do điều này tương đương với
2**(3**2)
Điều này mang lại cho chúng tôi 2**9
Điều này mang lại cho chúng tôi 512

b. Toán tử không liên kết

Toán tử gán và so sánh không liên kết. Điều này có nghĩa là x
(x
x<(y
Biểu thức này thực sự tương đương với (và điều này đánh giá từ trái sang phải)
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

  1. Ưu tiên toán tử trong Python là gì?
  2. Làm thế nào để ưu tiên làm việc trong Python?
  3. Toán tử Python nào có mức ưu tiên thấp nhất?
  4. Thứ tự ưu tiên của các toán tử Python là gì?
  5. Toán tử Python nào có độ ưu tiên cao nhất?

Phần kết luận

Do đó, 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; . .