当前位置: 首页 > 面试题库 >

这是什么运算符* = -1

谢骏奇
2023-03-14
问题内容

我正在进行一些Python活动,并为此操作符提供了示例代码y *= -1

我浏览了相关的Python文档,但无济于事。

我知道y += 1,例如,是的缩写y = y + 1。那么,这个y = y * -1y是否等于y的-1倍?

在Python文档我能找到最近的事情是这样的:x * yx和y的产品

是这个吗?


问题答案:

在绝大多数情况下

y *= <expr>

是相同的

y = y * <expr>

但在一般情况下,它解释为:

y = imul(y, <expr>)

这等效于:

y = y.__imul__(<expr>)

如果y的类型覆盖__imul__

这意味着ify的类型将覆盖 inplace 乘法运算符,y*=<expr>则在 inplace
中执行,而y=y*<expr>在not中执行。

编辑

可能尚不清楚为什么需要分配,即为什么将其解释为y = imul(y, <expr>),而不仅仅是imul(y, <expr>)

原因是在以下两种情况下得出相同的结果非常有意义:

c = a * b

c = a
c *= b

现在,如果ab属于相同类型(例如,浮点数,numpy数组等),这当然可以工作,但是如果不相同,则运算结果可能具有的类型b,在这种情况下操作不能是的就地操作a,因此需要将结果分配给a,以实现正确的行为。

例如,这要感谢分配:

from numpy import arange
a = 2
a *= arange(3)
a
=> array([0, 2, 4])

而如果分配被放弃,则a保持不变:

a = 2
imul(a, arange(3))
=> array([0, 2, 4])
a
=> 2


 类似资料:
  • 问题内容: 除了标准,,和运营商; 但什么是这些均值(,,,)? 又如何操作? in返回正常的余数模量,但是仅当,为什么会这样?怎么办? 又如何操作?它有什么作用? 问题答案: :求幂 :异或(按位) :模数 :除以积分结果(舍弃余数)

  • 问题内容: 这些不同的运算符做什么? 问题答案: <<, >> 分别向左和向右移位]。如果想象左操作数作为位的二进制序列,你正在移那些向左或向右的比特数指示由右操作数。 它们分别是按位 和 , xor和或。你能想到的,并为同行和,但他们会将自己的操作数为位向量,并在每个位执行逻辑运算。没有运算符,但是此运算是“xor”或“exclusiveor”。您可以将“ a xorb”视为“ a或b,但不能同

  • 问题内容: 我最近遇到了以下代码: 这是什么,某种反向双λ? 问题答案: 没有操作员。第一个只是Java 8中引入的lambda语法,第二个是误导性的“小于” 和“一元减”的串联。 您可以将其读取为,即它会测试是否小于,所有(很好,大多数)负数就是这种情况,因此命名为。 仅出于完整性考虑:此测试不仅(有意地?)难以理解,而且-如评论中所指出- 也因(而)失败。相反,您可能应该只使用简单得多的。

  • 问题内容: 我是一个仅出于乐趣而编写代码的人,并且在学术或专业环境中都没有真正地去研究它,所以像这些按位运算符之类的东西真的让我感到困惑。 我正在阅读一篇有关JavaScript的文章,该文章显然支持按位操作。我一直看到该操作在某些地方提到过,并且我尝试阅读以弄清楚它到底是什么,但是我似乎一点也不了解。那是什么 清楚的例子会很棒!:D 再问几个问题-按位运算的一些实际应用是什么?您什么时候可以使用

  • 本文向大家介绍JavaScript中的运算符是什么?,包括了JavaScript中的运算符是什么?的使用技巧和注意事项,需要的朋友参考一下 让我们采用一个简单的表达式“ 4 + 5等于9”。这里4和5称为操作数,“ +”称为运算符。 JavaScript支持以下类型的运算符。 算术运算符 比较运算符 逻辑(或关系)运算符 赋值运算符 条件(或三元)运算符 例 这是一个说明运算符示例的示例-

  • 问题内容: 我已经使用Java几年了,但是直到最近我还没有遇到过这种构造: 这可能是一个非常简单的问题,但是有人可以解释吗?我该如何阅读?我很确定我知道它是如何工作的。 如果isHere为真,getHereCount()则称为 如果isHere为假,getAwayCount()则调用。 正确?这个结构叫做什么? 问题答案: 是的,它是 它称为条件运算符。许多人(错误地)将其称为三元运算符,因为它是

  • 问题内容: 我正在处理由以前的开发人员编写的代码,并在查询中说: 这个查询是什么意思?等于吗?还是语法错误? 但是它没有显示任何错误或异常。我已经知道= 在MySQL的。 问题答案: TL; DR 这是安全的相等运算符。 像常规运算符一样,将两个值进行比较,结果为(不相等)或(相等);换句话说:yields 和yields 。 与常规运算符不同,of的值没有特殊含义,因此它永远不会产生可能的结果。

  • 问题内容: 我很困惑,在Google中找不到。谁能告诉我操作员名称是什么? 问题答案: 不等于,等于