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'
|<= < > >=
|<> == !=
|= %= /= //= -= += *= **=
|is is not
|in not in
|not or and
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.
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