I've been learning Python but I'm a little confused. Online instructors tell me to use the operator ** as opposed to ^ when I'm trying to raise to a certain number. Example:
print 8^3
Gives an output of 11. But what I'm look for (I'm told) is more akin to: print 8**3 which gives the correct answer of 512. But why?
Can someone explain this to me? Why is it that 8^3 does not equal 512 as it is the correct answer? In what instance would 11 (the result of 8^3)?
I did try to search SO but I'm only seeing information concerning getting a modulus when dividing.
Operator ^
is a bitwise operator, which does "bitwise exclusive or".
More: http://wiki.python.org/moin/BitwiseOperators
The power operator is **
, like 8**3
which equals to 512
.
Ref: http://docs.python.org/reference/expressions.html#the-power-operator
The symbols represent different operators.
The ^
represents the bitwise exclusive or (XOR
).
Each bit of the output is the same as the corresponding bit in x if
that bit in y is 0, and it's the complement of the bit in x if that bit in y is 1.
**
represents the power operator. That's just the way that the language is structured.
It's just that ^
does not mean "exponent" in Python. It means "bitwise XOR". See the documentation.