Python and Powers Math

96,995

Solution 1

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

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

Solution 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.

Share:
96,995
Interrupt
Author by

Interrupt

That thing you call a "bug" is actually a feature.

Updated on July 09, 2022

Comments

  • Interrupt
    Interrupt almost 2 years

    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.

    • nhahtdh
      nhahtdh almost 12 years
      ^ is XOR operator, ** is power. Search for XOR (google or stackoverflow) to know what it means.
    • Interrupt
      Interrupt almost 12 years
      Wow, thank you so much. I thought I was doing something wrong (and in essence I suppose I did for assuming ^ was for powers in Python. Thank you for the clarification.
    • mgilson
      mgilson almost 12 years
      @user1527653 -- don't forget to accept an answer (click the little checkmark next to an answer). That helps others who have the same problem you did by letting them know immediately which of the posted solutions was most useful to you.
  • mgilson
    mgilson almost 12 years
    It might also be worthwhile to point out that 8.^3 raises an exception since bitwise operations only work with integers
  • Interrupt
    Interrupt almost 12 years
    Wow, I've never had to work with bitwise operators before (after all I'm just learning the language), so interesting! Thank you