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 文件与目录操作
Dec 24 Python
python实现基本进制转换的方法
Jul 11 Python
python去掉行尾的换行符方法
Jan 04 Python
python读取excel表格生成erlang数据
Aug 26 Python
Python django使用多进程连接mysql错误的解决方法
Oct 08 Python
pandas 层次化索引的实现方法
Jul 06 Python
NumPy中的维度Axis详解
Nov 26 Python
Keras loss函数剖析
Jul 06 Python
10个python爬虫入门实例(小结)
Nov 01 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
python+selenium实现12306模拟登录的步骤
Jan 21 Python
手把手教你实现PyTorch的MNIST数据集
Jun 28 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 模拟登陆MSN并获得用户信息
2009/05/16 PHP
PHP 函数语法介绍一
2009/06/14 PHP
DedeCMS dede_channeltype表字段注释
2010/04/07 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
2017/06/07 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
读jQuery之八 包装事件对象
2011/06/21 Javascript
关于div自适应高度/左右高度自适应一致的js代码
2013/03/22 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
利用window.name实现windowStorage代码分享
2014/01/02 Javascript
JS实现跟随鼠标立体翻转图片的方法
2015/05/04 Javascript
JavaScript实现带标题的图片轮播特效
2015/05/20 Javascript
浅谈javascript中遇到的字符串对象处理
2016/11/18 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
JS中的phototype详解
2017/02/04 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
使用JavaScript获取Django模板指定键值数据
2020/05/27 Javascript
vue 动态生成拓扑图的示例
2021/01/03 Vue.js
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
Python pymsql模块的使用
2020/09/07 Python
欧洲顶级的童装奢侈品购物网站:Bambini Fashion(面向全球)
2018/04/24 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
心理健康教育心得体会
2013/12/29 职场文书
优秀干部获奖感言
2014/01/31 职场文书
2014全国两会大学生学习心得体会
2014/03/10 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
员工开除通知书
2015/04/25 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android