Hướng dẫn same precedence level in python - cùng mức độ ưu tiên trong python

Ưu tiên của các nhà khai thác Python

Sự kết hợp của các giá trị, biến, toán tử và các cuộc gọi chức năng được gọi là một biểu thức. Trình thông dịch Python có thể đánh giá một biểu thức hợp lệ.

Ví dụ:

>>> 5 - 7
-2

Ở đây

# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
2 là một biểu thức. Có thể có nhiều hơn một toán tử trong một biểu thức.

Để đánh giá các loại biểu thức này, có một quy tắc ưu tiên trong Python. Nó hướng dẫn thứ tự thực hiện các hoạt động này.

Ví dụ, phép nhân có ưu tiên cao hơn phép trừ.

# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2

Nhưng chúng ta có thể thay đổi thứ tự này bằng cách sử dụng dấu ngoặc đơn no___trans___pre___13 vì nó có ưu tiên cao hơn so với nhân.

# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12

Các nhà điều hành được ưu tiên trong Python được liệt kê trong bảng sau. Đó là theo thứ tự giảm dần [nhóm trên có ưu tiên cao hơn so với nhóm thấp hơn].

Người vận hànhNghĩa
# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
3
Dấu ngoặc đơn
# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
5
Số mũ
No___trans___pre___16, no___trans___pre___17, no___trans___pre___18Unary Plus, Unary Minus, bitwise không
No___trans___pre___19, no___trans___pre___20, no___trans___pre___21, no___trans___pre___22Phép nhân, phân chia, phân chia sàn, mô đun
# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12
3, no___trans___pre___24
Ngoài ra, trừ
# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12
5, no___trans___pre___26
Các nhà khai thác thay đổi bitwise
# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12
7
Bitwise và
# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12
8
BitWise XOR
# Parentheses [] has higher precedence
>>> [10 - 4] * 2
12
9
Bitwise hoặc
No___trans___pre___30, no___trans___pre___31, no___trans___pre___32, no___trans___pre___33, no___trans___So sánh, danh tính, nhà khai thác thành viên
Lunch being delivered
0
Logic không
Lunch being delivered
1
Hợp lý và
Lunch being delivered
2
Hợp lý hoặc

Hãy xem xét một số ví dụ:

Giả sử chúng ta đang xây dựng một khối no___trans___pre___43 chạy số ___trans___pre___44 khi bữa trưa là trái cây hoặc bánh sandwich và chỉ khi tiền nhiều hơn hoặc bằng 2.

# Precedence of or & and
meal = "fruit"

money = 0

if meal == "fruit" or meal == "sandwich" and money >= 2:
    print["Lunch being delivered"]
else:
    print["Can't deliver lunch"]

Đầu ra

Lunch being delivered

Chương trình này chạy khối số ___trans___pre___44 ngay cả khi tiền là 0. Nó không cung cấp cho chúng tôi đầu ra mong muốn vì mức độ ưu tiên của NO___TRANS___PRE___41 cao hơn NO___Trans___Pre___42.

Chúng ta có thể nhận được đầu ra mong muốn bằng cách sử dụng dấu ngoặc đơn no___trans___pre___13 theo cách sau:

# Precedence of or & and
meal = "fruit"

money = 0

if [meal == "fruit" or meal == "sandwich"] and money >= 2:
    print["Lunch being delivered"]
else:
    print["Can't deliver lunch"]

Đầu ra

Can't deliver lunch

Chương trình này chạy khối số ___trans___pre___44 ngay cả khi tiền là 0. Nó không cung cấp cho chúng tôi đầu ra mong muốn vì mức độ ưu tiên của NO___TRANS___PRE___41 cao hơn NO___Trans___Pre___42.

Chúng ta có thể nhận được đầu ra mong muốn bằng cách sử dụng dấu ngoặc đơn no___trans___pre___13 theo cách sau:

Sự kết hợp của các nhà khai thác Python

Chúng ta có thể thấy trong bảng trên rằng nhiều hơn một toán tử tồn tại trong cùng một nhóm. Các nhà khai thác này có cùng mức độ ưu tiên.

Khi hai toán tử có cùng mức độ ưu tiên, sự kết hợp giúp xác định thứ tự hoạt động.

# Left-right associativity
# Output: 3
print[5 * 2 // 3]

# Shows left-right associativity
# Output: 0
print[5 * [2 // 3]]

Đầu ra

3
0

Chương trình này chạy khối số ___trans___pre___44 ngay cả khi tiền là 0. Nó không cung cấp cho chúng tôi đầu ra mong muốn vì mức độ ưu tiên của NO___TRANS___PRE___41 cao hơn NO___Trans___Pre___42.: Exponent operator

# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
5 has right-to-left associativity in Python.

# Shows the right-left associativity of **
# Output: 512, Since 2**[3**2] = 2**9
print[2 ** 3 ** 2]

# If 2 needs to be exponated fisrt, need to use []
# Output: 64
print[[2 ** 3] ** 2]

Chúng ta có thể nhận được đầu ra mong muốn bằng cách sử dụng dấu ngoặc đơn no___trans___pre___13 theo cách sau:

Sự kết hợp của các nhà khai thác Python

Chúng ta có thể thấy trong bảng trên rằng nhiều hơn một toán tử tồn tại trong cùng một nhóm. Các nhà khai thác này có cùng mức độ ưu tiên.

Khi hai toán tử có cùng mức độ ưu tiên, sự kết hợp giúp xác định thứ tự hoạt động.

Sự kết hợp là thứ tự trong đó một biểu thức được đánh giá có nhiều toán tử có cùng mức độ ưu tiên. Hầu như tất cả các nhà khai thác đều có sự kết hợp từ trái sang phải.

# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
0

Đầu ra

# Multiplication has higher precedence
# than subtraction
>>> 10 - 4 * 2
2
1

Cái nào có cùng mức độ ưu tiên trong Python?

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. have the same precedence, which is higher than addition and subtraction, which also have the same precedence.

Thứ tự chính xác của ưu tiên trong Python là gì?

Trả lời: Thứ tự chính xác của ưu tiên được đưa ra bởi PEMDA có nghĩa là dấu ngoặc đơn [], theo cấp số nhân **, phép nhân *, chia /, bổ sung +, trừ -.Parenthesis [], Exponential **, Multiplication *, Division /, Addition +, Subtraction -.

Cái nào có ưu tiên cao nhất [] hoặc?

Toán tử logic và logic [&&] 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, Q && r được đánh giá trước S--. has higher precedence than the logical-OR operator [ || ], so q && r is grouped as an operand. Since the logical operators guarantee evaluation of operands from left to right, q && r is evaluated before s-- .

Toán tử quan hệ nào có được ưu tiên toán tử cao nhất> =
Khi một câu lệnh chứa các toán tử số học, quan hệ và logic, trình biên dịch sẽ đánh giá ưu tiên theo thứ tự sau:..
Tiêu cực [trừ] Unary có được ưu tiên đầu tiên ..
Phép nhân và phân chia có ưu tiên thứ hai ..
Ngoài ra và phép trừ có ưu tiên thứ ba ..
Không [!] Có ưu tiên thứ tư ..

Chủ Đề