Reputation: 985
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.
Upvotes: 43
Views: 101104
Reputation: 362
You can also use the pow
function in the built-in math
package. That is:
from math import pow
pow(8,3)
Upvotes: 0
Reputation: 1979
Operator ^
is a bitwise operator, which does bitwise exclusive or.
The power operator is **
, like 8**3
which equals to 512
.
Upvotes: 84
Reputation: 32532
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.
Upvotes: 16
Reputation: 251345
It's just that ^
does not mean "exponent" in Python. It means "bitwise XOR". See the documentation.
Upvotes: 0