python运算符号输入_【Python】【运算符】

【取模】

所谓取模运算,就是计算两个数相除之后的余数,符号是%。如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的最大整数(这里的除就是正常的除,不是整除)。

需要注意的是,整数的取模运算的定义和浮点数的是一样的,所以计算方法也是一样的。最前面提供的整数取模的方法,其实本质上跟浮点数取模的方法是一致的,只不过这种方法可能在含有负整数的整数取模中比较方便而已。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297283.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生开发框架dapr环境搭建:CLI安装和初始化

dapr 是微软的一个云原生&#xff08;Cloud Native&#xff09;开源项目&#xff0c;英文全称&#xff1a;Distributed Application Runtime&#xff0c;中文要翻译的话就是&#xff1a;分布式应用运行时。也就是一个运行时框架&#xff0c;面向云原生架构。dapr官网地址&#…

java map 值排序_使用Java8 Stream API对Map类型按照键或值进行排序

在这篇文章中&#xff0c;您将学习如何使用Java对Map按照键或值进行排序。前几日有位朋友面试遇到了这个问题&#xff0c;看似很简单的问题&#xff0c;但是如果不仔细研究一下也是很容易让人懵圈的面试题。所以我决定写这样一篇文章。在Java中&#xff0c;有多种方法可以对Map…

GDB调试多进程|多线程程序

1. 默认设置下&#xff0c;在调试多进程程序时GDB只会调试主进程。但是GDB&#xff08;>V7.0&#xff09;支持多进程的分别以及同时调试&#xff0c;换句话说&#xff0c;GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值&#xff1a;parent)和detach-on-fork&a…

Informatica bulk与normal模式的深入详解(转)

Bulk 方式进行目标数据的Load&#xff0c;是Informatica提供的一种高性能的Load数据方式。它利用数据库底层机制&#xff0c;依靠调用数据库本身提供的Utility来进行数据的加载。 使用Bulk方式 Load时&#xff0c;Informatica调用Utility进行Load&#xff0c;此方式将绕过数据库…

php学习 基础二

常用流程控制 IF语句的使用 if&#xff08;判断语句&#xff09; { 执行语句体 } 判断语句 &#xff1a;逻辑运算符号 值非0&#xff0c;执行语句 IF ELSE 语句使用 if&#xff08;判断语句&#xff09; { 执行语句体1 } else { …

沙漠上不小心挖了个洞,让这个地狱之门般的巨坑,燃烧了50年

全世界只有3.14 % 的人关注了爆炸吧知识在土库曼斯坦的卡拉库姆沙漠深处&#xff0c;有一个神奇的巨坑&#xff0c;直径约为70米&#xff0c;它无论白天还是黑夜&#xff0c;永远都在燃烧。这个坑的周围一片荒芜&#xff0c;坑里也没有任何明显在助燃的东西但坑内燃烧的大火近5…

不同用户同时并发测压_简单聊聊吞吐量(TPS)、QPS、并发数、响应时间(RT)概念...

1、 响应时间(RT) 响应时间是指系统对请求作出响应的时间。直观上看&#xff0c;这个指标与人对软件性能的主观感受是非常一致的&#xff0c;因为它完整地记录了整个计算机系统处理请求的时间。由于一个系统通常会提供许多功能&#xff0c;而不同功能的处理逻辑也千差万别&…

读《沟通的方法》

众所周知&#xff0c;沟通在工作和生活中是一项非常重要的技能&#xff0c;但很多人却用不好这项技能&#xff0c;最近中秋假期&#xff0c;看完了得到 CEO 脱不花写的《沟通的方法》&#xff0c;觉得很有收获。脱不花没有上过大学&#xff0c;能有今天的成就&#xff0c;超强的…

java 数组下标 变量_Java基础语法:数组

一、简介描述&#xff1a;数组是相同类型数据的有序集合。其中,每一个数据称作一个数组元素&#xff0c;每个数组元素可以通过一个下标来访问它们。基本特点&#xff1a;数组的长度是确定的。数组一旦被创建&#xff0c;它的大小就是不可以改变的。数组元素必须是相同类型&…

STP的初使化过程

STP初使化过程分为网桥角色(根网桥,非根网桥)的确定和端口角色(根端口&#xff0c;指定端口,阻塞端口)的确定&#xff0c;最终端口状态(稳定状态有blocking&#xff0c;forwarding)确定后&#xff0c;树就形成了。 STP端口状态的改变依赖于端口角色的改变和计时器的超时&#x…

CGRect vs CGPoint vs CGSize

l来自http://bengan.javaeye.com/blog/728457&#xff0c;感谢分享&#xff01; ‍ ‍每个视图都使用一个边框定义其界限。这个边框指定了视图的轮廓&#xff1a;其位置、宽度和高度。 我们使用Core Graphics结构宋定义边框矩形。对于边框&#xff0c;这通常表示由原点(CGPoin…

【转】URL编码(encodeURIComponent和decodeURIComponent)

转自http://blog.jhonse.com/archives/2032.jhonse 最近在用CI框架的时候&#xff0c;发现一个问题&#xff0c;URL的GET方式链接时&#xff0c;如果用中文字符的话&#xff0c;就会出现问题&#xff0c;提示&#xff1a;链接字符不通过&#xff0c;于是在网上找了很多方法&…

收藏!这10部关于数学的顶级纪录片,告诉孩子数学跟枯燥不沾边!

全世界只有3.14 % 的人关注了爆炸吧知识学好数学&#xff0c;必须从娃娃抓起&#xff01;数学是人类的高级思维活动&#xff0c;越往顶层走&#xff0c;需要的各种思维能力就越多。所以&#xff0c;要想孩子数学好&#xff0c;首先要帮他“打牢思维的地基”。怎么打&#xff1f…

不确定规划及应用代码_性能测试划分之应用领域

性能测试划分性能测试划分有很多种&#xff0c;测试方法也有很多种&#xff0c;更确切的说是由于测试方法的不同决定了测试划分的情况&#xff0c;但在测试过程中性能测试的划分没有绝对的界限&#xff0c;常用的有压力测试、负载测试和并发用户测试等。性能测试的方法主要包括…

使用SysPrep制作Windows2008系统映像

Windows2008及R2的Sysprep程序位于C:\Windows\System32\Sysprep目录下。 前几天在做实验环境的时候发现一个奇怪的问题&#xff0c;成员服务器加入域时&#xff0c;提示加入域成功&#xff0c;但是本地管理员组里没有Domain Admins组&#xff0c;而且将域帐户加入本地管理员组时…

java监听网络连接_Android RxJava 之网络链接监听示范

RxJava在stream events处理上真的是一个利器。下面的示范代码显示如何用它来监听android设备的网络连接状况&#xff0c;实时接收change信息。IntentFilter filter new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);AndroidObservable.fromBroadcast(this, filter)…

老师“鬼话”全曝光!哈哈哈哈哈全国的老师都这样吗?

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;少女兔&#xff08;ID&#xff1a;iiilass&#xff09;完来源&#xff1a;少女兔&#xff08;ID&#xff1a;iiilass&#xff09;作者 | 兔姐&#xff0c;宇宙疼老婆协会VIP会员&#xff0c;超人气美女漫画师&#xff0c…

windows2003——IIS

IIS转载于:https://blog.51cto.com/honglingjin2011/515383

需求分析 应该先写业务还是功能_一个套路,拆解常见数据分析需求

现实与Kaggle的区别现实环境的数据分析工作和Kaggle题目之间&#xff0c;最大的区别在于kaggle上的问题往往非常清晰。预测类问题&#xff0c;你只需要把预测做的足够准确就能拿高分。但在实际的业务环境中&#xff0c;你做了一个很牛逼的预测模型&#xff0c;换回来的只是业务…

如何在 ASP.NET CORE 中获取客户端 IP ?

咨询区 eadam&#xff1a;在 ASP.NET 中我可以用 Request.ServerVariables["REMOTE_ADDR"] 来获取客户端IP地址&#xff0c;请问在 ASP.NET Core 中我该如何实现呢&#xff1f;回答区 CodingYourLife如果你用的是 .NET 5&#xff0c;可以用内部提供的扩展方法来实现获…