这些运算符(* * ,^ ,% ,//)是什么意思?

除了标准的 +-*/操作符之外,这些操作符是什么意思(**^%//) ?

>>> 9+float(2) # addition
11.0
>>> 9-float(2) # subtraction
7.0
>>> 9*float(2) # multiplication
18.0
>>> 9/float(2) # division
4.5
>>>
>>> 9**float(2) # This looks like a square, (i.e. power 2)
81.0
>>> 9**float(3) # So ** is equivalent to `math.pow(x,p)` ?
729.0

^操作员怎么样?

>>> 9^int(2) # What is `^` in `x^u` , it only allows `int` for `u`
11
>>> 9^int(3)
10
>>> 9^int(4)
13
>>> 9^int(5)
12
>>> 9^int(6)
15
>>> 9^int(7)
14
>>> 9^int(8)
1
>>> 9^int(9)
0
>>> 9^int(10)
3
>>> 9^int(11)
2
>>> 9^int(12)
5

x%m中的 %返回一个正常的余数模,但是只有当 m < x时,为什么会这样? %是做什么的?

>>> 9%float(2)
1.0
>>> 9%float(3)
0.0
>>> 9%float(4)
1.0
>>> 9%float(5)
4.0
>>> 9%float(6)
3.0
>>> 9%float(7)
2.0
>>> 9%float(8)
1.0
>>> 9%float(9)
0.0
>>> 9%float(10)
9.0
>>> 9%float(11)
9.0
>>> 9%float(12)
9.0

//操作员怎么样? 它是做什么的?

>>> 9//float(2)
4.0
>>> 9//float(3)
3.0
>>> 9//float(4)
2.0
>>> 9//float(5)
1.0
>>> 9//float(6)
1.0
>>> 9//float(7)
1.0
>>> 9//float(8)
1.0
>>> 9//float(9)
1.0
>>> 9//float(1)
9.0
>>> 9//float(0.5)
18.0
761473 次浏览
  • **: 指数
  • ^: 独占或(按位)
  • 模数
  • //: 除以积分结果(丢弃余数)

你是正确的,**是幂函数。

^是按位异或。

%确实是模运算,但是请注意,对于正数,x % m = x只要 m > x。这源于模的定义。(此外,Python 指定 x % m具有 m的符号。)

//是一个除法运算,它通过丢弃余数来返回一个整数。这是在大多数编程语言中使用 /的标准除法形式。但是,Python3改变了 /的行为以执行浮点除法 即使参数是整数。在 Python 2.6和 Python 3中引入 //运算符是为了提供一个整数除法运算符,该运算符在 Python 2和 Python 3之间的行为是一致的。这意味着:

| context                                | `/` behavior   | `//` behavior |
---------------------------------------------------------------------------
| floating-point arguments, Python 2 & 3 | float division | int divison   |
---------------------------------------------------------------------------
| integer arguments, python 2            | int division   | int division  |
---------------------------------------------------------------------------
| integer arguments, python 3            | float division | int division  |

有关更多细节,请参见这个问题: Python 2.7和3.3中的分部

您可以在 Python 语言参考中找到所有这些操作符,但是您必须滚动一下才能找到所有这些操作符。正如其他答案所说:

  • **运算符执行指数运算。a ** b是提高到 b功率的 a。在函数参数和调用符号中也使用相同的 **符号,但具有不同的含义(传递和接收任意关键字参数)。
  • ^运算符执行二进制 xor。a ^ b将返回一个值,其中只包含在 ab中设置的位,但不包含两者。这个很简单!
  • %运算符主要是求两个整数的模。在 a除以 b之后,a % b返回余数。与其他一些编程语言(比如 C)中的模运算符不同,在 Python 中,模运算符将具有与 b相同的符号,而不是与 a相同的符号。同样的操作符也用于“旧”样式的字符串格式化,所以如果 a是格式化字符串,而 b是可以插入到 a中的值(或值的元组) ,那么 a % b可以返回一个字符串。
  • //运算符执行 Python 版本的整数除法。Python 的整数除法与其他语言(如 C)提供的整数除法并不完全相同,因为它的整数除法趋向于负无穷大,而不是趋向于零。与模运算符一起,你可以说 a == (a // b)*b + (a % b)。在 Python2中,当您除以两个整数(使用普通除法运算符 /)时,楼层除法是默认行为。由于这可能是意料之外的(特别是当你不挑剔什么类型的数字作为一个函数的参数) ,Python 3已经改变,使“真”(浮点数)除法的标准,除法将四舍五入,并将只有在明确要求“地板”除法。(还可以通过将 from __future__ import division放在文件的顶部来获得 Python2中的新行为。我强烈推荐!)