准备收集一些有趣、流行、有一定挑战、长知识的 Python 题目,文章标题均以「Python 竞赛题」开头。
下面哪个不是 Python 的运算符:
- A) @
- B) ~
- C) **
- D) //
- E) &
- F) None of the above?
选好了吗?选好了再往下翻。
正确答案是 F
惊不惊喜、意不意外?
解释:
先看容易的
B) ~ 表示按位取反,比如 ~1 的结果就是 -2:
代码语言:javascript复制>>> ~1
-2
如果你想知道为什么是 -2,那就需要知道计算机都是以补码形式保存数字的,可以看看前文关于补码,大学老师讲的很不负责任。
C) ** 这个是幂运算,比如 2**3 就表示 2 的 3 次方:
代码语言:javascript复制>>>2 ** 3
8
D) // 这个表示除法取整数:
代码语言:javascript复制>>> 3//2
1
>>> 5//2
2
E) & 这个是按位与运算:
代码语言:javascript复制>>> 1 & 1
1
>>> 1 & 0
0
>>> 0 & 0
0
A) @ 这个很多人认为不是运算符,其实是的,表示矩阵乘法,我们可以解释器键入 help('NUMBERMETHODS') 查看:
不过,@ 运算符是受限的,只能在特定的库中使用,比如在 numpy 中:
代码语言:javascript复制>>> x1
array([[1, 2],
[3, 4]])
>>> y1
array([[2, 1],
[4, 3]])
>>> x1 @ y1
array([[10, 7],
[22, 15]])
因此答案是 F。
如果有收获,欢迎点赞、转发、评论。