Python中的取模运算方法


Posted in Python onNovember 10, 2018

所谓取模运算,就是计算两个数相除之后的余数,符号是%。如a % b就是计算a除以b的余数。用数学语言来描述,就是如果存在整数n和m,其中0 <= m < b,使得a = n * b + m,那么a % b = a - n * b = m.

取模运算的两个操作数都必须是整数,可以是负整数,但是b不可以是0,因为被除数不能为0嘛。

当a和b中存在负整数时,首先计算|a|%|b|=c,然后a%b的符号与b一致。也就是说,如果b>0,则a%b=c;如果b<0,则a%b=-c

比如:

Python中的取模运算方法

好了,上面是以前我对取模运算的认识,我记得<<C++ Primer>>上也是这么写的。但是,在Python中,我随便输入了一个浮点数进行取模运算,竟然也是可以的,惊呆了==

Python中的取模运算方法

不过呢,仔细观察就会发现,不知道它是怎么计算的啊!怎么办呢,我们首先来看看,浮点数的取模在数学上要怎么定义呢?

浮点数取模的数学定义:对于两个浮点数a和b,a % b = a - n * b,其中n为不超过a / b的最大整数。

例如,

3.5 / 2 = 1.75,取n = 1,则3.5 % 2 = 3.5 - 1 * 2 = 1.5

-3.5 / 2 = -1.75,取n = -2,则-3.5 % 2 = -3.5 - (-2) * 2 = 0.5

3.5 / -2.5 = -1.4,取n = -2,则3.5 % -2.5 = 3.5 - (-2) * (-2.5) = -1.5

另外,C++中有一个函数fmod可以用来计算浮点数的取模。

总结:

取模运算的两个操作数a和b可以是整数,也可以是浮点数;可以是正数,零(b不能为0),也可以是负数。不管是整数还是浮点数,是正数还是负数还是零,只需要抓住取模的数学定义即可。统一的数学定义如下:

对于两个数a和b(b不为0),a % b = a - n * b,其中n为不超过a / b的最大整数(这里的除就是正常的除,不是整除)。

需要注意的是,整数的取模运算的定义和浮点数的是一样的,所以计算方法也是一样的。最前面提供的整数取模的方法,其实本质上跟浮点数取模的方法是一致的,只不过这种方法可能在含有负整数的整数取模中比较方便而已。

以上这篇Python中的取模运算方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现划词翻译
Apr 23 Python
Python struct模块解析
Jun 12 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
Python获取二维矩阵每列最大值的方法
Apr 03 Python
Python3实现爬取指定百度贴吧页面并保存页面数据生成本地文档的方法
Apr 22 Python
Django如何配置mysql数据库
May 04 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
Feb 05 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)
Jul 20 Python
Python在后台自动解压各种压缩文件的实现方法
Nov 10 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
python之django路由和视图案例教程
Jul 26 Python
在Python中获取两数相除的商和余数方法
Nov 10 #Python
Python解决两个整数相除只得到整数部分的实例
Nov 10 #Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 #Python
pandas 数据归一化以及行删除例程的方法
Nov 10 #Python
python 重命名轴索引的方法
Nov 10 #Python
Pandas:Series和DataFrame删除指定轴上数据的方法
Nov 10 #Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 #Python
You might like
Php注入点构造代码
2008/06/14 PHP
用PHP调用Oracle存储过程的方法
2008/09/12 PHP
PHP 批量删除数据的方法分析
2009/10/30 PHP
ubuntu10.04配置 nginx+php-fpm模式的详解
2013/06/03 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
javascripit实现密码强度检测代码分享
2013/12/12 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
jQuery实现带有上下控制按钮的简单多行滚屏效果代码
2015/09/04 Javascript
javascript实现禁止复制网页内容汇总
2015/12/30 Javascript
AngularJS 使用 UI Router 实现表单向导
2016/01/29 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
Python Web程序部署到Ubuntu服务器上的方法
2018/02/22 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Python脚本实现监听服务器的思路代码详解
2020/05/28 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
HTML5之HTML元素扩展(下)—增强的Form表单元素值得关注
2013/01/31 HTML / CSS
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
意大利奢侈品零售商:ilDuomo Novara
2019/09/11 全球购物
党员干部承诺书范文
2014/03/25 职场文书
初三学生评语大全
2014/04/24 职场文书
爱国演讲稿400字
2014/05/07 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书