首页 > 编程问答 >Python 中的模 (%) 运算符如何处理负数?

Python 中的模 (%) 运算符如何处理负数?

时间:2024-07-21 12:47:02浏览次数:11  
标签:python modulo negative-number

% 运算符在 Python 中到底是如何工作的,特别是在涉及负数时?

例如,为什么 -5 % 4 求值为 3 ,而不是 -1


在 Python 中,模运算符 ( % ) 遵循以下规则:

a % b = a - (b * floor(a / b))

其中:

  • a 是被除数。
  • b 是除数。
  • floor(a / b) 是小于或等于 a/b 的最大整数。

这意味着模运算的结果的符号与 除数 (b) 的符号相同。

在的例子中:

  • a = -5
  • b = 4

  • a / b = -5 / 4 = -1.25

  • floor(-1.25) = -2 (小于或等于 -1.25 的最大整数)
  • a - (b * floor(a / b)) = -5 - (4 * -2) = -5 + 8 = 3

因此, -5 % 4 = 3

Python 的模运算符返回除以除数后得到的“正余数”。换句话说,它始终找到一个值,使以下条件成立:

  • (商 * 除数) + 余数 = 被除数
  • 余数的符号与除数相同。

即使被除数是负数,此规则也适用。这就是为什么会得到正余数 3 而不是 -1 的原因。

其他编程语言可能会以不同的方式处理模运算,其中一些语言会返回负余数以用于负被除数。但是 Python 的方法在处理诸如模算术和循环(其中需要一致行为)等概念时保持一致性并提供有用的特性。

标签:python,modulo,negative-number
From: 3883004

相关文章

  • 如何使用 python 更新设备孪生?
    我目前正在尝试使用python更新设备孪生中的属性。但由于SSL错误而无法执行此操作。下面是代码fromazure.iot.hubimportIoTHubRegistryManagerimportcertifiimportssl#ConnecttoIoTHubandsendmessagetodeviceCONNECTION_STRING="HostName=iothub-j......
  • 【Python将字符串连接在一起】
    当然,Python是一个功能丰富且灵活的语言,有许多技巧和最佳实践可以帮助你更有效地编写代码。以下是一些常见的Python技巧:列表推导式(ListComprehensions):这是一种简洁的构建列表的方法。它比使用循环更加清晰和Pythonic。[x*2forxinrange(5)]#输出:[0,2,4,6,......
  • 我心中的王者:Python-第2章 认识变量与基本数学运算
    我心中的王者:Python-第2章认识变量与基本数学运算本章将从基本数学运算开始,一步一步讲解变量的使用与命名,接着介绍Python的算术运算。2-1用Python做计算假设读者到麦当劳打工,一小时可以获得120元时薪,如果想计算一天工作8小时,可以获得多少工资?我们可以用计算器执行“1......
  • 【Dison夏令营 Day 25】用Python写个2048
    在本文中,我们将用python代码和逻辑来设计一款你经常在智能手机上玩的2048游戏。如果您对该游戏不熟悉,强烈建议您先玩一下该游戏,以便了解其基本功能。如何玩2048.NET?1.有一个4*4的网格,可以填入任何数字。一开始,随机填入两个2的单元格。其余单元格为空。我们......
  • python入门基础——新手必看
    前言随着人工智能,大数据的发展。python是当前时代最流行,可以在数据处理、web开发、人工智能等多个领域。它的语法简洁、开发效率高、可移植性强,并且可以和其他变成语言(比如C++)轻松衔接,本文主要讲述一些python的变量,基本数据类型,输入、输出,数据类型的转换,运算符等一些必需的......
  • python中逗号运算符的含义
    我理解了python中逗号运算符的简单概念。例如,x0,sigma=0,0.1表示x0=0,sigma=0.1。但我获得了一个代码,其中有一行如下所示。y,xe=np.histogram(np.random.normal(x0,sigma,1000))其中y和xe的输出如下。yOut[10]:array([3,17,58,136,216,25......
  • 【科大讯飞笔试题汇总】2024-07-20-科大讯飞秋招提前批(研发岗)-三语言题解(Cpp/Java/
    ......
  • Python - Pandas - loc vs iloc (DataFrame.loc[:,['column_name':]])
    原文链接:https://blog.csdn.net/weixin_48964486/article/details/123150832————————————————————————————————————————————————关于python数据分析常用库pandas中的DataFrame的loc和iloc取数据基本方法总结归纳及示例如下:1.......
  • 在 Python 中将 2 列的数据框转换为一系列 2 列
    我正在尝试处理一些时间序列数据,并且对pandas数据框相当陌生。我有一个包含两列的数据框,如下所示:+---+-----------------------+-------+--+||0|1||+---+-----------------------+-------+--+|1|2018-08-0223:00:00|456.8||......
  • 基于python的非平稳时间序列模型
    前言平稳时间序列指的是宽平稳时间序列,就是指时间序列的均值、方差和协方差等一二阶矩存在但不随时间改变,表现为时间的常数。若三个条件有一个不成立,那么就称该序列为非平稳时间序列。包括确定性趋势时间序列和随机性趋势时间序列。要想把非平稳的时间序列转化为平稳的时......