使用负操作数的模运算符

2024-06-01 01:11:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我在学习的时候发现,对负算子使用模算子可以得到不同的输出 我正在打印print(-28%10),它给出了输出2,print(28%-10)给出了输出-2,它背后的逻辑是什么,print(28%10)给出了8,结果是实际的剩余。有人能帮我理解吗


Tags: 逻辑print算子
3条回答

您可以将%B运算符视为一种工具,用于: “只要我们找到一个介于0和B之间的数字,就可以从A中加或减B” i、 e

-28%10 = 2
since:
-28 +10 +10 +10 = 2 # between 0 and 10

28%-10 = -2
since:
28 -10 -10 -10 = -2 #between 0 and -10
28 -10 -10 = 8 #not between 0 and -10

28%10 = 8
since:
28 -10 -10 = 8# between 0 and 10

%运算符实际上不是模运算符,而是python中的余数运算符。文档对此不是很清楚,但它不遵循负值的正常模逻辑,而只是获取余数

Guido van Rossum explains他决定%将以这种方式工作,因为这对某些应用程序很有用,例如,如果您使用表示纪元开始之前时间点的第二个时间戳(1970年1月1日),您可以通过执行t % 86400轻松计算天数

相关问题 更多 >