Giải thích ưu tiên toán tử bằng ví dụ 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

Ư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ừ> 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.

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

>>> if[s!=None] and [len[s]>> 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à 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

Chủ Đề