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中的greenlet包实现并发编程的入门教程
Apr 16 Python
介绍Python的@property装饰器的用法
Apr 28 Python
python的exec、eval使用分析
Dec 11 Python
对python 各种删除文件失败的处理方式分享
Apr 24 Python
python安装numpy和pandas的方法步骤
May 27 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
django 中使用DateTime常用的时间查询方式
Dec 03 Python
Django中从mysql数据库中获取数据传到echarts方式
Apr 07 Python
jupyter notebook 多行输出实例
Apr 09 Python
Python压缩模块zipfile实现原理及用法解析
Aug 14 Python
Python中的套接字编程是什么?
Jun 21 Python
Python sklearn分类决策树方法详解
Sep 23 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
MVC模式的PHP实现
2006/10/09 PHP
PHP学习之PHP变量
2006/10/09 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
用JS写的一个TableView控件代码
2010/01/23 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
JQuery异步加载无限下拉框级联功能实现示例
2014/02/19 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
程序员必知35个jQuery 代码片段
2015/11/05 Javascript
js模糊查询实例分享
2016/12/26 Javascript
Ionic2调用本地SQlite实例
2017/04/22 Javascript
vue 系列——vue2-webpack2框架搭建踩坑之路
2017/12/22 Javascript
angular2 ng2-file-upload上传示例代码
2018/08/23 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
vue实现拖拽效果
2019/12/23 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
python实现的多线程端口扫描功能示例
2017/01/21 Python
浅谈python 线程池threadpool之实现
2017/11/17 Python
python使用sqlite3时游标使用方法
2018/03/13 Python
对python创建及引用动态变量名的示例讲解
2018/11/10 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
2019/06/26 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
scrapy实践之翻页爬取的实现
2021/01/05 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
HTML5无刷新改变当前url的代码
2017/03/15 HTML / CSS
全球最大的户外用品零售商之一:The House
2018/06/12 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
乡镇党建工作汇报材料
2014/10/27 职场文书
财产保全担保书
2015/01/20 职场文书
同学会邀请函模板
2015/01/30 职场文书
毕业实习单位意见
2015/06/04 职场文书
一文搞懂Java中的注解和反射
2022/06/21 Java/Android