Toán tử kết hợp trong Python

Một biểu thức trong python bao gồm các biến, toán tử, giá trị, v.v. Khi trình thông dịch Python gặp bất kỳ biểu thức nào chứa một số phép toán, tất cả các toán tử sẽ được đánh giá theo một hệ thống phân cấp có thứ tự, được gọi là quyền ưu tiên của toán tử

Bảng ưu tiên toán tử Python

Dưới đây là bảng thứ tự ưu tiên toán tử trong python, tăng dần từ trên xuống và giảm dần từ dưới lên trên

OperatorDescription:=Assignment expressionlambdaLambda expressionif-elseConditional expressionorBoolean ORandBoolean ANDnot xBoolean NOT=,Comparison operators!=, ==Equality operatorsin, not in, is, is not,Identity operators, membership operators|Bitwise OR^Bitwise XOR&Bitwise ANDLeft and right Shifts+, –Addition and subtraction*, @, /, //, %Multiplication, matrix multiplication, division, floor division, remainder+x, -x, ~xUnary plus, Unary minus, bitwise NOT**Exponentiationawait xAwait expressionx[index], x[index], x[arguments…], x.attributeSubscription, slicing, call, attribute reference[] Parentheses[Highest precedence]

Quy tắc ưu tiên toán tử Python - PEMDAS

Ưu tiên toán tử trong python tuân theo quy tắc PEMDAS cho các biểu thức số học. Thứ tự ưu tiên của các toán tử được liệt kê dưới đây theo thứ tự từ cao đến thấp

Đầu tiên, các dấu ngoặc đơn sẽ được đánh giá, sau đó là lũy thừa, v.v.

  • P – Dấu ngoặc đơn
  • E – Luỹ thừa
  • M – Phép nhân
  • D – Bộ phận
  • A – Bổ sung
  • S – Phép trừ

Trong trường hợp liên kết có nghĩa là, nếu hai toán tử có độ ưu tiên bằng nhau xuất hiện trong biểu thức, thì quy tắc kết hợp được tuân theo

Quy tắc kết hợp

Tất cả các toán tử, ngoại trừ lũy thừa [**] đều theo phép kết hợp từ trái sang phải. Nó có nghĩa là việc đánh giá sẽ tiến hành từ trái sang phải, trong khi đánh giá biểu thức

Ví dụ- [43+13−9/3∗7][43 + 13 - 9/3 * 7][43+13−9/3∗7]

Trong trường hợp này, mức độ ưu tiên của phép nhân và phép chia là bằng nhau, nhưng hơn nữa, chúng sẽ được đánh giá theo tính kết hợp từ trái sang phải

Hãy thử giải biểu thức này bằng cách tách nó ra và áp dụng quy tắc ưu tiên và kết hợp

  • Thông dịch viên gặp dấu ngoặc đơn [. Do đó nó sẽ được đánh giá đầu tiên
  • Sau này có bốn toán tử +++, −-−, ∗*∗ và ///
  • Ưu tiên của [/,[/,[/, và ∗]>*] >∗]> Ưu tiên của [+,−][+, -][+,−]
  • Chúng ta chỉ có thể sử dụng thứ tự ưu tiên của toán tử nếu tất cả các toán tử thuộc về các cấp độ khác-khác nhau từ bảng phân cấp, đây không phải là trường hợp trong ví dụ của chúng ta
  • Quy tắc kết hợp sẽ được tuân theo đối với các toán tử có cùng mức độ ưu tiên
  • Biểu thức này sẽ được tính từ trái sang phải, 9/3∗79 / 3 * 79/3∗7 = 3∗73 * 73∗7 = 212121
  • Bây giờ, biểu thức của chúng ta đã trở thành 43+13−2143+13-2143+13−21
  • Từ trái sang phải Quy tắc kết hợp sẽ được tuân thủ lại. Vì vậy, giá trị cuối cùng của biểu thức sẽ là, 43+13−2143+13-2143+13−21 = 56−2156-2156−21 = 353535

ví dụ

Dưới đây là hai ví dụ để minh họa thứ tự ưu tiên của toán tử trong python. Xem phần giải thích để hiểu rõ về cách thức hoạt động của những thứ này trong nội bộ

Trong hướng dẫn này, bạn sẽ tìm hiểu về mức độ ưu tiên và tính kết hợp của toán tử Python. Chủ đề này rất quan trọng đối với các lập trình viên để hiểu ngữ nghĩa của các toán tử Python

Sau khi đọc nó, bạn sẽ có thể biết Python đánh giá thứ tự các toán tử của nó như thế nào. Một số toán tử có mức ưu tiên cao hơn các toán tử khác, chẳng hạn như toán tử nhân có mức ưu tiên cao hơn toán tử cộng, do đó, phép nhân trước phép cộng

Trong một biểu thức, trình thông dịch Python sẽ đánh giá các toán tử có mức độ ưu tiên cao hơn trước. Và, ngoại trừ toán tử số mũ [**], tất cả các toán tử khác được đánh giá từ trái sang phải

Tính ưu tiên và tính liên kết của toán tử Python

nội dung

  • 1 Mức độ ưu tiên của toán tử Python
    • 1. 1 Thứ tự ưu tiên toán tử hoạt động như thế nào trong Python?
    • 1. 2 Cho ví dụ về mức độ ưu tiên của toán tử trong Python
  • 2 Tính liên kết của toán tử Python
    • 2. 1  Tính liên kết có nghĩa là gì trong Python?
    • 2. 2 Cho ví dụ về tính liên kết trong Python
  • 3 Toán tử không liên kết
    • 3. 1 Toán tử không liên kết trong Python là gì?
    • 3. 2 Cho ví dụ về toán tử không liên kết

Tính ưu tiên và tính liên kết của toán tử Python

Mức độ ưu tiên của toán tử Python

Thứ tự ưu tiên của toán tử hoạt động như thế nào trong Python?

Khi chúng ta nhóm một tập hợp các giá trị, biến, toán tử hoặc lệnh gọi hàm dưới dạng một biểu thức. Và một khi bạn thực thi biểu thức đó, trình thông dịch Python sẽ đánh giá nó là một biểu thức hợp lệ

Xem một ví dụ đơn giản dưới đây

>>> 3 + 4
7

Ở đây, '3 +4' là một biểu thức Python. Nó chứa một toán tử và hai toán hạng. Tuy nhiên, một câu lệnh phức tạp hơn có thể bao gồm nhiều toán tử

Để đánh giá các biểu thức phức tạp, Python đưa ra quy tắc ưu tiên. Nó chi phối thứ tự diễn ra các hoạt động

Cho ví dụ về mức độ ưu tiên của toán tử trong Python

Xem ví dụ dưới đây kết hợp nhiều toán tử để tạo thành biểu thức ghép

# Multiplication get evaluated before
# the addition operation
# Result: 17
5 + 4 * 3

Tuy nhiên, có thể thay đổi thứ tự đánh giá với sự trợ giúp của dấu ngoặc đơn []. Nó có thể ghi đè quyền ưu tiên của các toán tử số học

# Parentheses [] overriding the precedence of the arithmetic operators
# Output: 27
[5 + 4] * 3

Bảng ưu tiên của toán tử trong Python

Tham khảo bảng dưới đây liệt kê các toán tử có mức độ ưu tiên cao nhất ở trên cùng và thấp nhất ở dưới cùng

nhà điều hành

Cách sử dụng

{ }

Dấu ngoặc đơn [nhóm]

f[args…]

gọi hàm

x[chỉ số. mục lục]

cắt lát

x[chỉ số]

Đăng ký

x. thuộc tính

Tham chiếu thuộc tính

**

số mũ

~x

Bitwise không

+x, -x

Tích cực, tiêu cực

*, /, %

Tích, chia, dư

+, –

Phép cộng, phép trừ

Dịch chuyển trái/phải

&

Bitwise AND

^

Bitwise XOR

|

Bitwise HOẶC

vào, không vào, là, không phải,
,. =, ==

So sánh, thành viên, bản sắc

không x

Boolean KHÔNG

Boolean AND

hoặc

Boolean HOẶC

lamda

biểu thức lambda

Liên kết toán tử Python

Trong bảng trên, bạn có thể xác nhận rằng một số nhóm có nhiều toán tử. Điều đó có nghĩa là tất cả các toán tử trong một nhóm đều có cùng mức độ ưu tiên

Và bất cứ khi nào hai hoặc nhiều toán tử có cùng mức độ ưu tiên, thì tính kết hợp sẽ xác định thứ tự của các phép toán

Tính liên kết có nghĩa là gì trong Python?

Tính kết hợp là thứ tự mà Python đánh giá một biểu thức chứa nhiều toán tử có cùng mức độ ưu tiên. Hầu như tất cả các toán tử ngoại trừ số mũ [**] đều hỗ trợ tính kết hợp từ trái sang phải

Cho ví dụ về tính liên kết trong Python

Ví dụ: tích [*] và mô đun [%] có cùng mức độ ưu tiên. Vì vậy, nếu cả hai xuất hiện trong một biểu thức, thì biểu thức bên trái sẽ được đánh giá trước

# Testing Left-right associativity
# Result: 1
print[4 * 7 % 3]

# Testing left-right associativity
# Result: 0
print[2 * [10 % 5]]

Như đã nói trước đó, toán tử duy nhất có tính kết hợp từ phải sang trái trong Python là toán tử số mũ [**]

Xem các ví dụ dưới đây

# Checking right-left associativity of ** exponent operator
# Output: 256
print[4 ** 2 ** 2]

# Checking the right-left associativity
# of **
# Output: 256
print[[4 ** 2] ** 2]

Bạn có thể đã quan sát thấy rằng ‘print[4 ** 2 ** 2]’ tương tự như ‘[4 ** 2 ** 2]

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

Toán tử không liên kết trong Python là gì?

Python có một số toán tử như toán tử gán và toán tử so sánh không hỗ trợ tính kết hợp. Thay vào đó, có các quy tắc đặc biệt cho thứ tự của loại toán tử này không thể quản lý thông qua tính kết hợp

Cho ví dụ về các toán tử không liên kết

Ví dụ, biểu thức 5 < 7 < 9 không có nghĩa là [5 < 7] < 9 hoặc 5 < [7 < 9]. Ngoài ra, câu lệnh 5 < 7 < 9 cũng giống như 5 < 7 và 7 < 9 và được đánh giá từ trái sang phải

Ngoài ra, xâu chuỗi các toán tử gán như a = b = c là hoàn toàn ổn trong khi 'a = b += c' sẽ dẫn đến lỗi

# Set the values of a, b, c
x = 11, y = 12, z = 13

# Expression is incorrect
# Non-associative operators
# Error -> SyntaxError: invalid syntax

x = y += 12

Bây giờ, bạn có thể muốn xem cách Python xử lý ưu tiên toán tử và tính kết hợp

Tóm tắt nhanh – Ưu tiên toán tử Python

Hướng dẫn này đã đề cập đến một chủ đề rất quan trọng – Quyền ưu tiên và tính kết hợp của toán tử Python. Vì vậy, bây giờ bạn sẽ dễ dàng hơn để tạo các biểu thức phức/phức trong Python

Nếu bạn tìm thấy một cái gì đó mới để học ngày hôm nay, thì hãy chia sẻ nó với những người khác. Và, hãy theo dõi chúng tôi trên các tài khoản mạng xã hội [Facebook/Twitter] của chúng tôi để biết thêm về điều này

Kết hợp toán tử với ví dụ là gì?

Tính liên kết của toán tử được được sử dụng khi hai toán tử có cùng mức độ ưu tiên xuất hiện trong một biểu thức . Khả năng kết hợp có thể là Trái sang Phải hoặc Phải sang Trái. Ví dụ. '*' và '/' có cùng mức độ ưu tiên và tính kết hợp của chúng là Từ trái sang phải, vì vậy biểu thức “100/10 * 10” được coi là “[100/10] * 10”.

Toán tử nào có tính kết hợp từ bên phải

Ví dụ, phép nhân và phép chia sàn có cùng mức độ ưu tiên. Do đó, nếu cả hai đều tồn tại trong một biểu thức, thì biểu thức bên trái sẽ được đánh giá trước. Ghi chú. Toán tử số mũ ** có tính kết hợp từ phải sang trái trong Python.

Toán tử nào có tính kết hợp đúng?

Tính kết hợp phải của toán tử = cho phép các biểu thức như a = b = c được hiểu là a = [b = c .

Ưu tiên toán tử Python là gì?

Thứ tự ưu tiên của toán tử trong Python chỉ đề cập đến thứ tự của các phép toán . Toán tử được sử dụng để thực hiện các thao tác trên các biến và giá trị. Python phân loại các toán tử của nó trong các nhóm sau. toán tử số học. Toán tử gán.

Chủ Đề