Python 竞赛题-01-下面哪个不是 Python 的运算符?

2022-10-25 20:58:59 浏览数 (2)

准备收集一些有趣、流行、有一定挑战、长知识的 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。

如果有收获,欢迎点赞、转发、评论

0 人点赞