From 68ba0c67cac10c2545ea3b62d8b161e5b3594edd Mon Sep 17 00:00:00 2001 From: Ammar Askar Date: Mon, 19 Apr 2021 11:22:03 -0400 Subject: [PATCH] bpo-43837: Reverse order of precedence table to show tightly binding operators first (GH-25469) --- Doc/reference/expressions.rst | 82 +++++++++++++++++------------------ 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 4b4c20b8d5e..5b153762bf4 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -1819,8 +1819,8 @@ Operator precedence .. index:: pair: operator; precedence -The following table summarizes the operator precedence in Python, from lowest -precedence (least binding) to highest precedence (most binding). Operators in +The following table summarizes the operator precedence in Python, from highest +precedence (most binding) to lowest precedence (least binding). Operators in the same box have the same precedence. Unless the syntax is explicitly given, operators are binary. Operators in the same box group left to right (except for exponentiation, which groups from right to left). @@ -1833,51 +1833,51 @@ precedence and have a left-to-right chaining feature as described in the +-----------------------------------------------+-------------------------------------+ | Operator | Description | +===============================================+=====================================+ -| ``:=`` | Assignment expression | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`lambda` | Lambda expression | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`if ` -- :keyword:`!else` | Conditional expression | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`or` | Boolean OR | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`and` | Boolean AND | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`not` ``x`` | Boolean NOT | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`in`, :keyword:`not in`, | Comparisons, including membership | -| :keyword:`is`, :keyword:`is not`, ``<``, | tests and identity tests | -| ``<=``, ``>``, ``>=``, ``!=``, ``==`` | | -+-----------------------------------------------+-------------------------------------+ -| ``|`` | Bitwise OR | -+-----------------------------------------------+-------------------------------------+ -| ``^`` | Bitwise XOR | -+-----------------------------------------------+-------------------------------------+ -| ``&`` | Bitwise AND | -+-----------------------------------------------+-------------------------------------+ -| ``<<``, ``>>`` | Shifts | -+-----------------------------------------------+-------------------------------------+ -| ``+``, ``-`` | Addition and subtraction | -+-----------------------------------------------+-------------------------------------+ -| ``*``, ``@``, ``/``, ``//``, ``%`` | Multiplication, matrix | -| | multiplication, division, floor | -| | division, remainder [#]_ | -+-----------------------------------------------+-------------------------------------+ -| ``+x``, ``-x``, ``~x`` | Positive, negative, bitwise NOT | -+-----------------------------------------------+-------------------------------------+ -| ``**`` | Exponentiation [#]_ | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`await` ``x`` | Await expression | -+-----------------------------------------------+-------------------------------------+ -| ``x[index]``, ``x[index:index]``, | Subscription, slicing, | -| ``x(arguments...)``, ``x.attribute`` | call, attribute reference | -+-----------------------------------------------+-------------------------------------+ | ``(expressions...)``, | Binding or parenthesized | | | expression, | | ``[expressions...]``, | list display, | | ``{key: value...}``, | dictionary display, | | ``{expressions...}`` | set display | +-----------------------------------------------+-------------------------------------+ +| ``x[index]``, ``x[index:index]``, | Subscription, slicing, | +| ``x(arguments...)``, ``x.attribute`` | call, attribute reference | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`await` ``x`` | Await expression | ++-----------------------------------------------+-------------------------------------+ +| ``**`` | Exponentiation [#]_ | ++-----------------------------------------------+-------------------------------------+ +| ``+x``, ``-x``, ``~x`` | Positive, negative, bitwise NOT | ++-----------------------------------------------+-------------------------------------+ +| ``*``, ``@``, ``/``, ``//``, ``%`` | Multiplication, matrix | +| | multiplication, division, floor | +| | division, remainder [#]_ | ++-----------------------------------------------+-------------------------------------+ +| ``+``, ``-`` | Addition and subtraction | ++-----------------------------------------------+-------------------------------------+ +| ``<<``, ``>>`` | Shifts | ++-----------------------------------------------+-------------------------------------+ +| ``&`` | Bitwise AND | ++-----------------------------------------------+-------------------------------------+ +| ``^`` | Bitwise XOR | ++-----------------------------------------------+-------------------------------------+ +| ``|`` | Bitwise OR | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`in`, :keyword:`not in`, | Comparisons, including membership | +| :keyword:`is`, :keyword:`is not`, ``<``, | tests and identity tests | +| ``<=``, ``>``, ``>=``, ``!=``, ``==`` | | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`not` ``x`` | Boolean NOT | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`and` | Boolean AND | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`or` | Boolean OR | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`if ` -- :keyword:`!else` | Conditional expression | ++-----------------------------------------------+-------------------------------------+ +| :keyword:`lambda` | Lambda expression | ++-----------------------------------------------+-------------------------------------+ +| ``:=`` | Assignment expression | ++-----------------------------------------------+-------------------------------------+ .. rubric:: Footnotes