【问题标题】:a * a//b doesn't work properly in Python (// Operator)a * a//b 在 Python 中不能正常工作(// 运算符)
【发布时间】:2020-01-30 12:46:48
【问题描述】:

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

但如果是 * 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 = 10 * 10//3 = 100//3 = 33。这有什么问题?
  • 100 // 33 * 10 不同,是的。
  • Python 不太关心空间那个
  • 天哪,对不起.. TT

标签: python operator-keyword division


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    在第一种情况下,您在末尾截断为整数,在第二种情况下,您在开始时执行此操作。因此,您会得到不同的答案。

    【讨论】:

    • “两种情况下的操作顺序相同”是什么意思?
    猜你喜欢
    • 1970-01-01
    • 2023-01-14
    • 2015-11-14
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多