【取模】

所谓取模运算,就是计算两个数相除之后的余数,符号是%。如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

比如:

5 % 2 = 1

-5 % 2 = 1

5 % -2 = -1

-5 % -2 = -1

好了,上面是以前我对取模运算的认识,我记得<>上也是这么写的。但是,在Python中,我随便输入了一个浮点数进行取模运算,竟然也是可以的,惊呆了==

3.5 % 2 = 1.5

3 % 2.5 = 0.5

3.5 % 2.5 = 1.0

-3.5 % 2 = 0.5

-3 % 2.5 = 2.0

-3.5 % 2.5 = 1.5

3.5 % -2.5 = -2.0

3.5 % -2.5 = -1.5

不过呢,仔细观察就会发现,不知道它是怎么计算的啊!怎么办呢,我们首先来看看,浮点数的取模在数学上要怎么定义呢?

浮点数取模的数学定义:对于两个浮点数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】【运算符】相关推荐

  1. python符号运算_入门第五课 Python运算符号

    准确地讲,应该叫"运算符",运算符号是我为了方便大家理解起的名字. 在数学中,我们有很多熟悉常用的运算符号:加号+.减号-.乘号(Python中的乘号是*).除号(Python的除 ...

  2. python模拟键盘输入_这件神器,每个 Python入门学习者都值得一试

    灰常实用的一篇文章,看完你会来点赞滴. 不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输 ...

  3. python灰度图片格式_[Python图像处理] 十五.图像的灰度线性变换

    [Python图像处理] 十五.图像的灰度线性变换 发布时间:2019-03-28 00:08, 浏览次数:619 , 标签: Python 该系列文章是讲解Python OpenCV图像处理知识,前 ...

  4. python朋友圈刷屏_“Python太火了!请救救Java!”9万程序员刷屏朋友圈 !

    没想到有生之年,笔者能观察到"霸主陨落"的过程,继PLPY4月榜单官宣,Python躺赢,再度"夺"冠,实力甩下Java和C后,近期,Stack Overflo ...

  5. python shell如何打开_“python shell怎么打开“python shell启动教程

    python shell怎么打开 1.简介:如何在python中运行shell(bash命令) 2.工具/原料:python库:os.py 3.方法:import os command = 'date ...

  6. python多进程编程实例_[python] Python多进程编程技术实例分析

    这篇文章主要介绍了Python多进程编程技术,包括了线程.队列.同步等概念及相关的技巧总结,需要的朋友可以参考下 本文以实例形式分析了Python多进程编程技术,有助于进一步Python程序设计技巧. ...

  7. python查看excel编码格式_[Python]实现处理读写xlsx xls excel文件格式(含中文处理方法)...

    最近有个需求要处理excel 格式的数据,数据量比较大.用传统的语言似乎不太好处理,于是改用python实现,这里记录一下实现过程. 首先,科普一下xlsx xls的excel文件区别是什么. xls ...

  8. python快速爬虫视频_“python怎么快速爬虫视频“python 爬网页视频教程

    用python怎样爬网页 # coding:utf8 import cookielib import urllib2 url = "http://blog.uouo123.com" ...

  9. python 打包 小文件_[Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件

    1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...

最新文章

  1. printf打印是字体和背景带颜色的输出的方法
  2. R安德森-达令检验( Anderson-Darling Test)
  3. js复制input 框中的值
  4. BZOJ 3668: [Noi2014]起床困难综合症( 贪心 )
  5. 用matlab相关分析,基于matlab的逐像元偏相关分析
  6. 泛型方法的定义和使用_泛型( Generic )
  7. P5325-[模板]Min_25筛
  8. 2016蓝桥杯省赛---java---A---6(寒假作业)
  9. php能打开.shp文件吗,shp文件是什么格式的
  10. boost 变量类型转换
  11. 安装python3.7.0的步骤_python 3.7.0 安装配置方法图文教程
  12. 安装open3d python
  13. 前端开发 表格元素 单元格的合并 0229
  14. ajax传递复选框的参数,ajax将table复选框的数组值传递到后台
  15. 明年起网剧可参评白玉兰奖 你期待哪部网剧上榜?
  16. 达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
  17. sap关于既是供应商又是客户的处理-转
  18. jQuery插件开发精品教程,让你的jQuery提升一个台阶
  19. FTP 简介与 Windows 系统搭建 FTP 服务器
  20. 信息搜集 - 二层发现 arping

热门文章

  1. .NET框架之“小马过河”
  2. [开源] FreeSql AOP 功能模块 - FreeSql
  3. Asp.Net Core Docker镜像更新系统从wheezy改为stretch
  4. Asp.Net Core 轻松学-正确使用分布式缓存
  5. [译]聊聊C#中的泛型的使用
  6. .NET Core开发日志——Linux版本的SQL Server
  7. Orleans解决并发之痛(四):Streams
  8. .NET 框架兼容性简介
  9. Scrapy从理论到爬图
  10. 电机与系统计算机仿真作业,北邮计算机仿真期末大作业.docx