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.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

Operator ^ is a bitwise operator, which does bitwise exclusive or.

The power operator is **, like 8**3 which equals to 512.

Method 2

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.

Method 3

It’s just that ^ does not mean “exponent” in Python. It means “bitwise XOR”. See the documentation.


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x