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 getopt 参数处理小示例
Jun 09 Python
天翼开放平台免费短信验证码接口使用实例
Dec 18 Python
python使用sorted函数对列表进行排序的方法
Apr 04 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
详解Python如何获取列表(List)的中位数
Aug 12 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
python3爬虫学习之数据存储txt的案例详解
Apr 24 Python
python顺序执行多个py文件的方法
Jun 29 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
Aug 05 Python
Django Admin设置应用程序及模型顺序方法详解
Apr 01 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
很实用的一个完整email发送程序
2006/10/09 PHP
php 读取文件乱码问题
2010/02/20 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
php操作JSON格式数据的实现代码
2011/12/24 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
php中使用getimagesize获取图片、flash等文件的尺寸信息实例
2014/04/29 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
php中请求url的五种方法总结
2017/07/13 PHP
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
2011/01/06 Javascript
iframe子父页面调用js函数示例
2013/11/07 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
2015/03/03 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
javascript轮播图算法
2016/10/21 Javascript
javascript表达式和运算符详解
2017/02/07 Javascript
vue中appear的用法
2017/08/17 Javascript
Vue上传组件vue Simple Uploader的用法示例
2017/08/25 Javascript
vue 表单输入格式化中文输入法异常问题
2018/05/30 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
JavaScript ES6箭头函数使用指南
2018/12/30 Javascript
jquery实现拖拽添加元素功能
2020/12/01 jQuery
[01:59]DOTA2首部纪录片《Free to play》预告片
2014/03/12 DOTA
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
Python3使用PyQt5制作简单的画板/手写板实例
2017/10/19 Python
Python3单行定义多个变量或赋值方法
2018/07/12 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
用Python做一个久坐提醒小助手的示例代码
2020/02/10 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
介绍Java的内部类
2012/10/27 面试题
新闻网站实习自我鉴定
2013/09/25 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
幼儿园辞职信范文
2015/02/27 职场文书