python3中int(a//x)和int(a/x)之间的区别[重复]

Posted

技术标签:

【中文标题】python3中int(a//x)和int(a/x)之间的区别[重复]【英文标题】:difference between int(a//x) and int(a/x) in python3 [duplicate] 【发布时间】:2021-12-25 20:58:36 【问题描述】:

如果a和x都是整数,python3中的int(a//x)和int(a/x)有什么区别。 最近我在比赛中使用 int(a/x) 得到了错误的答案,但是我使用 int(a//x) 时我的代码被接受了。

【问题讨论】:

【参考方案1】:
x, y = 3, 4
print(int(x/y))
print(x//y)

返回

0 
0 

但是:

x, y = -2, 4
print(int(x/y))
print(x//y)

返回

0 
-1 

所以是的。如果一个输入变量是负整数,则变量的输出会有所不同。

【讨论】:

感谢您的回答,但在我的情况下,x 和 y 都是整数。我将 (a/b) 和 (a//b) 都转换为 int,因此它们必须具有相同的类型。 感谢您的评论@PooyaOstovar 我相应地更新了我的答案【参考方案2】:

int(a/x) 截断小数(截断数字)。它实际上并没有在intfunction 中进行除法。

a//x 除以地板(向下舍入)。它在字节码中使用 BINARY_FLOOR_DIVIDE。

【讨论】:

以上是关于python3中int(a//x)和int(a/x)之间的区别[重复]的主要内容,如果未能解决你的问题,请参考以下文章

两个int数据相除怎么得到double型数据

拓展欧几里得定理

带有键的 std::map 作为具有三个 int 成员的结构 [重复]

GCC 对 int *a = 1,2,3,4,5 的语句做了啥?

编写程序,从键盘输入一个三位数,求出其逆序数并输出,例如输入127,输出721。

1.若X,Y,Z都定义是INT类型且初值为0,则以下不正确的赋值语句是 A,X+Y=Z+10; B,X+=Y+2; C.Z++; D.X+Y+Z