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 24 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
pandas 使用apply同时处理两列数据的方法
Apr 20 Python
numpy中的delete删除数组整行和整列的实例
May 09 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
python使用response.read()接收json数据的实例
Dec 19 Python
Python opencv实现人眼/人脸识别以及实时打码处理
Apr 29 Python
基于python traceback实现异常的获取与处理
Dec 13 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
Python API 操作Hadoop hdfs详解
Jun 06 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
php 生成随机验证码图片代码
2010/02/08 PHP
PHP+jQuery实现自动补全功能源码
2013/05/15 PHP
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php调整服务器时间的方法
2015/04/03 PHP
php递归函数三种实现方法及如何实现数字累加
2015/08/07 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
2015/12/14 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
JavaScript入门之基本函数详解
2011/10/21 Javascript
浅析JS刷新框架中的其他页面 &amp;&amp; JS刷新窗口方法汇总
2013/07/08 Javascript
JS+CSS 制作的超级简单的下拉菜单附图
2013/11/22 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
AngularJS的脏检查深入分析
2017/04/22 Javascript
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
3分钟读懂移动端rem使用方法(推荐)
2019/05/06 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
Python是编译运行的验证方法
2015/01/30 Python
Python端口扫描简单程序
2016/11/10 Python
Python_LDA实现方法详解
2017/10/25 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python实现绘制双柱状图并显示数值功能示例
2018/06/23 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
Python单元和文档测试实例详解
2019/04/11 Python
django框架forms组件用法实例详解
2019/12/10 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
2020/04/07 Python
大学生应聘自荐信
2013/10/11 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书