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实现域名系统(DNS)正向查询的方法
Apr 19 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
Apr 20 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
30秒轻松实现TensorFlow物体检测
Mar 14 Python
Python3实现转换Image图片格式
Jun 21 Python
Python 实现「食行生鲜」签到领积分功能
Sep 26 Python
Python面向对象程序设计之私有属性及私有方法示例
Apr 08 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
Python 使用list和tuple+条件判断详解
Jul 30 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
Jun 02 Python
从零开始的TensorFlow+VScode开发环境搭建的步骤(图文)
Aug 31 Python
Python卷积神经网络图片分类框架详解分析
Nov 07 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 执行系统命令的方法
2009/07/07 PHP
PHP 的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
2012/12/07 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
PHP简单读取PDF页数的实现方法
2016/07/21 PHP
php实现文件管理与基础功能操作
2017/03/21 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
2017/05/23 PHP
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
从零学JSON之JSON数据结构
2014/05/19 Javascript
使表格的标题列可左右拉伸jquery插件封装
2014/11/24 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
浅谈移动端之js touch事件 手势滑动事件
2016/11/07 Javascript
如何正确理解javascript的模块化
2017/03/02 Javascript
Kotlin学习第一步 kotlin语法特性
2017/05/25 Javascript
在小程序中使用canvas的方法示例
2018/09/17 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
基于 vue-skeleton-webpack-plugin 的骨架屏实战
2019/08/05 Javascript
Vue可自定义tab组件用法实例
2019/10/24 Javascript
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python中使用HTMLParser解析html实例
2015/02/08 Python
Python 使用SMTP发送邮件的代码小结
2016/09/21 Python
Numpy中stack(),hstack(),vstack()函数用法介绍及实例
2018/01/09 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
Python 转换文本编码实现解析
2019/08/27 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
2019/11/01 Python
Python爬取YY评级分数并保存数据实现过程解析
2020/06/01 Python
Python 实现将numpy中的nan和inf,nan替换成对应的均值
2020/06/08 Python
麦当劳辞职信范文
2014/01/18 职场文书
检查接待方案
2014/02/27 职场文书
空气的环保标语
2014/06/12 职场文书
公安交警中队队长个人对照检查材料思想汇报
2014/10/05 职场文书
面试通知短信
2015/04/20 职场文书
立案决定书范文
2015/06/24 职场文书
公司员工培训管理制度
2015/08/04 职场文书