Thứ tự ưu tiên cho 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 cho 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 ORvà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 trang này về Python, 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ép chia
Phép cộng
Subtraction

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

Điều đó xảy ra như thế nào? .
13+5 cho ta 18
18*2 cho ta 36
36-4 cho ta 32
32/2 gives us 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 cho 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 cho chúng tôi "Xin chào", mà là 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
Ba

Điều gì xảy ra ở đây? .
Đầ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ỉ đánh giá print(“Ba”).
Do đó, kết quả cuối cùng chúng tôi nhận được là.
Hai
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 điều đó theo những cách khác nhau. Xem như thế nào.
Ví dụ đầu tiên.
3*5 cho ta 15
15//4 cho ta 3
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 ta 2**9
Điều này mang lại cho chúng ta 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(xx<(yBiểu thức này thực sự tương đương với (và cái này . x
(x
x<(y
This expression is actually equivalent to (and this evaluates left-to-right):
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--.

Cái nào có quyền ưu tiên cao nhất trong Python?

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.

Thứ tự ưu tiên trong Python Lớp 11 là gì?

Câu hỏi 3. Thứ tự các hoạt động trong Python là gì? . PEMDAS là P, E, MD, AS; . multiplication and division have the same precedence, and the same applies for addition and subtraction.

Thứ tự ưu tiên của các toán tử số học được đưa ra dưới đây trong Python là gì?

Đó là một từ viết tắt để giúp bạn nhớ những toán tử nào đứng trước những toán tử còn lại. Chữ viết tắt là viết tắt của Dấu ngoặc đơn Phép nhân Phép chia Phép cộng Phép trừ .