The following table lists all operators from highest precedence to lowest.
|**||Exponentiation (raise to the power)|
|~ + -||Complement, unary plus and minus (method names for the last two are +@ and -@)|
|* / % //||Multiply, divide, modulo and floor division|
|+ -||Addition and subtraction|
|>> <<||Right and left bitwise shift|
|^ |||Bitwise exclusive `OR' and regular `OR'|
|<= < > >=||Comparison operators|
|<> == !=||Equality operators|
|= %= /= //= -= += *= **=||Assignment operators|
|is is not||Identity operators|
|in not in||Membership operators|
|not or and||Logical operators|
Operator precedence affects how an expression is evaluated.
For example, x = 7 + 3 * 2; here, x is assigned 13, not 20 because operator * has higher precedence than +, so it first multiplies 3*2 and then adds into 7.
Here, operators with the highest precedence appear at the top of the table, those with the lowest appear at the bottom.
#!/usr/bin/python a = 20 b = 10 c = 15 d = 5 e = 0 e = (a + b) * c / d #( 30 * 15 ) / 5 print "Value of (a + b) * c / d is ", e e = ((a + b) * c) / d # (30 * 15 ) / 5 print "Value of ((a + b) * c) / d is ", e e = (a + b) * (c / d); # (30) * (15/5) print "Value of (a + b) * (c / d) is ", e e = a + (b * c) / d; # 20 + (150/5) print "Value of a + (b * c) / d is ", e
When you execute the above program, it produces the following result −
Value of (a + b) * c / d is 90 Value of ((a + b) * c) / d is 90 Value of (a + b) * (c / d) is 90 Value of a + (b * c) / d is 50