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使用xlrd读取Excel格式文件的方法
Mar 10 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
Jan 04 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
python读取文件名称生成list的方法
Apr 27 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
对python 匹配字符串开头和结尾的方法详解
Oct 27 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python Gitlab Api 使用方法
Aug 28 Python
Python 从attribute到property详解
Mar 05 Python
Django中和时区相关的安全问题详解
Oct 12 Python
python将图片转为矢量图的方法步骤
Mar 30 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
判断Keep-Alive模式的HTTP请求的结束的实现代码
2011/08/06 PHP
PHP设计模式之责任链模式的深入解析
2013/06/13 PHP
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
JAVASCRIPT实现的WEB页面跳转以及页面间传值方法
2010/05/13 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
详解AngularJS中$filter过滤器使用(自定义过滤器)
2017/02/04 Javascript
使用nodejs爬取前程无忧前端技能排行
2017/05/06 NodeJs
35个最好用的Vue开源库(史上最全)
2019/01/03 Javascript
JavaScript获取页面元素的常用方法详解
2019/09/28 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
vue-列表下详情的展开与折叠案例
2020/07/28 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
微信小程序基于高德地图API实现天气组件(动态效果)
2020/10/22 Javascript
python3使用tkinter实现ui界面简单实例
2014/01/10 Python
浅谈用VSCode写python的正确姿势
2017/12/16 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
python 产生token及token验证的方法
2018/12/26 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
浅谈Python中re.match()和re.search()的使用及区别
2020/04/14 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
共产党员公开承诺书范文
2014/03/28 职场文书
小学数学课后反思
2014/04/23 职场文书
基层党组织建设整改方案
2014/09/16 职场文书
正风肃纪查摆剖析材料
2014/10/10 职场文书
党员年终个人总结
2015/02/14 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
2016新年问候语大全
2015/11/11 职场文书
80后创业总结的9条职场用人思想,记得收藏
2019/08/13 职场文书
详解MySQL连接挂死的原因
2021/05/18 MySQL
Java图书管理系统,课程设计必用(源码+文档)
2021/06/30 Java/Android
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技