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

Python中带有负操作数的整数除法和模运算

庄智
2023-03-14
问题内容

当我在Python 3.3.0中输入这些表达式时出现问题

-10 // 3  # -4
-10 % 3   #  2
10 // -3  # -4
10 % -3   # -2
-10 // -3 #  3

好像需要大约浮点数(-3.33)?并在整数除法中四舍五入,但是在模运算中它做的事情完全不同。似乎它返回余数+/-
1并仅根据负操作数所在的位置切换符号。即使在查看本网站上的其他答案之后,我也完全感到困惑!我希望有人也能清楚地解释这一点!这本书说出了一些提示:回想一下这个神奇的公式a
=(a // b)(b)+(a%b),但这似乎并没有为我清除一切。

-提前致谢!

编辑: 这些只是我对发生的事情的个人评估(以上),我知道,我完全没有了!


问题答案:

整数除法只是将最后获得的数字作为底数。

10/3  -> floor(3.33)  ->  3
-10/3 -> floor(-3.33) -> -4

(为什么要铺地板)

另一方面,模运算遵循 数学定义



 类似资料:
  • 问题内容: 在Python和Ruby中,有符号整数除法会截断为负无穷大,而有符号整数模数的第二个操作数具有相同的符号: 但是,在C和Java中,有符号整数除法将截断为0,并且有符号整数模数与第一个操作数具有相同的符号: 用C语言执行与Python和Ruby中相同的除法和模数的最简单,最有效的方法是什么? 问题答案: 在较旧的C标准中没有指定带符号整数除法的舍入方向。但是,在C99中指定将其舍入为零

  • 问题内容: -1 / 5整数除法应该返回什么?我对此行为完全感到困惑。我认为数学上应该为0,但是python和ruby返回-1。 为什么不同的语言在这里表现不同?请有人解释。谢谢。 问题答案: 简短的答案: 语言设计者可以选择在进行整数除法时,其语言是四舍五入为零,负无穷大还是正无穷大。不同的语言做出了不同的选择。 长答案: Python和Ruby的语言作者都认为向负无穷大舍入比向零四舍五入更有意

  • 本文向大家介绍python 负数取模运算实例,包括了python 负数取模运算实例的使用技巧和注意事项,需要的朋友参考一下 举例: 340%60 = 40 ,怎么来的? 340 - 60*5 = 40 340 - (比340小的那个可以被60整除的正整数) =. 40 如果是负数: -340%60 = -340 - (比-340小的那个可以被60整除的负整数) = -340 - (-360) =

  • 我有个愚蠢的问题。我想划分一个java.lang.Integer数组,并将结果保存到一个java.lang.Double数组中。我在Internet上搜索,但没有找到有用的信息(大部分关于Java.lang.Integer类的搜索都导致了原始类型int操作,如Java的整数除法和Java的整数除法)。 我下面的代码不起作用 对于java.lang.Integer(或者更一般的Number类和其他基

  • 我想要一个函数 例如,我们有, 或者在代码中,其中 和 是 32 位有符号整数: 这里有一个棘手的部分:如何有效地实现这一功能(不使用更大的64位值),并且不使用诸如

  • 问题内容: 您能帮我弄清楚这个Python部门吗 基数= 12.0 高度= 16 面积= 1/2 基础高度 解决方案对此表示 面积=(基数*高度)/ 2; 让我感到困惑的是1/2将是浮点数,而Python仅显示0而不是0.5,为什么在这种情况下解决方案显示/ 2 … 问题答案: Python2.7自动使用运算符作为整数(整数)除法,该运算符将始终产生整数。 例如: 1/2 = 0 3/4 = 0