a * a//b 在 Python 中无法正常工作(// 运算符)

a * a//b doesn't work properly in Python (// Operator)

python //运算符是整数除法。

但是对于 a * a//b,它的工作方式类似于 * a/b..

a = 10
b = 3
a * a//b
>> 33

a//b * a
>> 30

temp = a//b
a * temp
>> 30

为什么会这样??

您可能打算写 a * (a//b)。乘法发生在除法之前,因为它在左边并且具有相同的优先级。

两种情况下的操作顺序相同,但在两个语句的不同部分发生了隐式整数截断操作。

在第一种情况下,您在末尾截断为一个整数,在第二种情况下,您在开始时进行截断。结果,你得到了不同的答案。