【问题标题】:Why does Python `**` use for exponentiation instead of the `^` operator? [duplicate]为什么 Python `**` 用于求幂而不是 `^` 运算符? [复制]
【发布时间】:2018-08-02 23:28:48
【问题描述】:

为什么^ 在 Python 中没有平方?我知道取幂是 **,但是 ^ 到底是什么,为什么不使用那个运算符呢?

例如2^2=03^2=1

【问题讨论】:

  • (具体请查看the second answer
  • ^ 是按位异或运算符。你想要** 求幂。
  • 目的是让老 Fortran 程序员更容易过渡到 Python。
  • @BillBell 也是 C 程序员。
  • @shawnhcorey:另一个很好的理由。

标签: python bitwise-operators language-design exponentiation


【解决方案1】:

python 中的“^”符号是按位异或 (XOR) 运算符。如果输入之一或另一个为真,则或门为真。当且仅当只有一个输入为真时,异或门为真。 00 和 11 是错误的。 01和10是真的。按位异或可用于检查有多少位不同。

例如,

  1. 2^2 = 10
    • ^10
      = 00
      = 0
  2. 3^2 = 11
    • ^10
      = 01
      = 1

【讨论】:

    【解决方案2】:

    ^ 运算符已用于 bitwise xor

    >>> x = 42; format(x, '08b')
    '00101010'
    >>> y = 137; format(y, '08b')
    '10001001'
    >>> z = x ^ y; format(z, '08b')
    '10100011'
    

    剩下旧的Fortran-style ** 运算符用于求幂。

    >>> base = 5
    >>> exp = 2
    >>> base ** exp
    25
    

    【讨论】:

      猜你喜欢
      • 2011-04-13
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-19
      相关资源
      最近更新 更多