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求斐波那契数列示例分享
Feb 14 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
Apr 18 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
简单了解python关系(比较)运算符
Jul 08 Python
Python实现计算对象的内存大小示例
Jul 10 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
tensorflow2.0与tensorflow1.0的性能区别介绍
Feb 07 Python
Python迭代器协议及for循环工作机制详解
Jul 14 Python
DRF框架API版本管理实现方法解析
Aug 21 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
用缓存实现静态页面的测试
2006/12/06 PHP
PHP stripos()函数及注意事项的分析
2013/06/08 PHP
php采用ajax数据提交post与post常见方法总结
2014/11/10 PHP
thinkphp四种url访问方式详解
2014/11/28 PHP
初识laravel5
2015/03/02 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
整理JavaScript对DOM中各种类型的元素的常用操作
2016/05/05 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
微信小程序 实现tabs选项卡效果实例代码
2016/10/31 Javascript
JavaScript中创建对象的7种模式详解
2017/02/21 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
webpack学习教程之publicPath路径问题详解
2017/06/17 Javascript
手动下载Chrome并解决puppeteer无法使用问题
2018/11/12 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
JavaScript模块管理的简单实现方式详解
2019/06/15 Javascript
微信小程序 子级页面返回父级并把子级参数带回父级实现方法
2019/08/22 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
2019/09/27 Javascript
详解为element-ui的Select和Cascader添加弹层底部操作按钮
2020/02/07 Javascript
谈一谈vue请求数据放在created好还是mounted里好
2020/07/27 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python编写生成验证码的脚本的教程
2015/05/04 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
解决tensorflow打印tensor有省略号的问题
2020/02/04 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
python绘制雷达图实例讲解
2021/01/03 Python
美国购买体育赛事门票网站:TicketCity
2019/03/06 全球购物
黑猩猩商店:The Chimp Store
2020/02/12 全球购物
2014年元旦促销活动方案
2014/02/22 职场文书
难忘的一天教学反思
2014/04/30 职场文书
女方离婚起诉书
2015/05/18 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
微信小程序用户授权最佳实践指南
2021/05/08 Javascript