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实现统计单词出现的个数
May 28 Python
python方法生成txt标签文件的实例代码
May 10 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
Python写一个基于MD5的文件监听程序
Mar 11 Python
python中设置超时跳过,超时退出的方式
Dec 13 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python实现高斯投影正反算方式
Jan 17 Python
Python实现爬取网页中动态加载的数据
Aug 17 Python
python实现代码审查自动回复消息
Feb 01 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
Apr 12 Python
Python机器学习之基础概述
May 19 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脚本守护进程原理与实现方法详解
2017/07/20 PHP
php微信公众号开发之图片回复
2018/10/20 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
千分位数字格式化(用逗号隔开 代码已做了修改 支持0-9位逗号隔开)的JS代码
2013/12/05 Javascript
JS实现自适应高度表单文本框的方法
2015/02/25 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
基于HTML模板和JSON数据的JavaScript交互(移动端)
2016/04/06 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
Vue+axios实现统一接口管理的方法
2018/07/23 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
详解jQuery中的getAll()和cleanData()
2019/04/15 jQuery
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
2020/08/24 Javascript
python入门前的第一课 python怎样入门
2018/03/06 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
浅谈pytorch池化maxpool2D注意事项
2020/02/18 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
Everlast官网:拳击、综合格斗和健身相关的体育用品
2020/08/03 全球购物
毕业生找工作的求职信范文
2013/12/24 职场文书
竞聘副主任科员演讲稿
2014/01/11 职场文书
个人求职信范文分享
2014/01/31 职场文书
护理专业毕业生自我鉴定总结
2014/03/24 职场文书
纠纷协议书
2014/04/16 职场文书
会计求职简历自我评价
2015/03/10 职场文书
小学中队长竞选稿
2015/11/20 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
解决Pytorch dataloader时报错每个tensor维度不一样的问题
2021/05/28 Python
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python
Java 多态分析
2022/04/26 Java/Android