Interrupt
Interrupt

Reputation: 985

Python and Powers Math

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

Answers (4)

SiminSimin
SiminSimin

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

behnam
behnam

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

Sam Dolan
Sam Dolan

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

BrenBarn
BrenBarn

Reputation: 251345

It's just that ^ does not mean "exponent" in Python. It means "bitwise XOR". See the documentation.

Upvotes: 0

Related Questions