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)
。乘法发生在除法之前,因为它在左边并且具有相同的优先级。
两种情况下的操作顺序相同,但在两个语句的不同部分发生了隐式整数截断操作。
在第一种情况下,您在末尾截断为一个整数,在第二种情况下,您在开始时进行截断。结果,你得到了不同的答案。
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)
。乘法发生在除法之前,因为它在左边并且具有相同的优先级。
两种情况下的操作顺序相同,但在两个语句的不同部分发生了隐式整数截断操作。
在第一种情况下,您在末尾截断为一个整数,在第二种情况下,您在开始时进行截断。结果,你得到了不同的答案。