【问题标题】:How % works in Python [duplicate]% 如何在 Python 中工作 [重复]
【发布时间】:2015-04-17 04:49:12
【问题描述】:

我已经搜索过,但看起来这太基本了,无法在此之前发布。我开始学习 Python,并且已经给出了一个示例来编写。我不明白的一件事是 % 在下面这个特定示例中是如何工作的:

print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6

我已经使用了基本的操作顺序来稍微分解一下

(3 + 2 + 1 - 5) + (4 % 2) - (1 / 4) + 6
       1        + (4 % 2) -   .25   + 6
       1        + (4 % 2) -      6.25

我的困惑在于 (4 % 2) 的工作原理。进一步阅读该示例以了解最终结果是 7,但我不知道它是如何得出的。我认为问题在于我如何在脑海中阅读它。任何帮助将不胜感激。

【问题讨论】:

  • 该死,我设计了一个很好的答案,却发现问题被标记为重复
  • @MohitBhasi 那么在未来,寻找那些显然已经有答案的问题。
  • @tristan 应该发布一个小答案,然后编辑为一个合适的答案:P
  • @MohitBhasi 哦,你想要便宜的名声,你可以燃烧燃料来加热你的房子,我现在明白了。

标签: python percentage


【解决方案1】:

% 即模运算符给出除法的余数。

例如

>>> 5%3
2
>>> 15%3
0
>>> 

/ 除法运算符的工作方式如下:

整数值除以整数值得到一个整数而不是浮点数(1/4 = 0.25)

>>> 1/4
0
>>> 1.0/4
0.25
>>> 1/4.0
0.25
>>> 1.0/4.0
0.25
>>> 

【讨论】:

  • 这解释了整数。谢谢你。自从 C++ 101 回到大学并试图学习新东西已经过去了大约 10 年。
【解决方案2】:

如果您检查1/4,您将得到 0,而不是 0.25。因为14 是整数。

In [42]: 1/4
Out[42]: 0

In [43]: 1.0/4
Out[43]: 0.25

所以

(3 + 2 + 1 - 5) = 1
(4 % 2) = 0
(1 / 4) = 0

最终的结果是

1 + 0 + 0 + 6 = 7

【讨论】:

  • 谢谢罗曼,这比像将其标记为重复的人那样仅仅指向模数解释更有意义。没有意识到它们被认为是整数,所以除了整数之外的任何东西都会被考虑。所以 (4 % 2) 基本上写成 (4 进入 2) = 0 次。所以 (3 % 11) 实际上是 3? 3/11 = 0 3 - 0 = 3 对吗?
  • 不,不是 4 进入到。 2 进入 4,余数为 0。除法的模是整数余数
  • @BrianStoiber 是的,您还可以检查函数divmod(x, y),它将返回一个元组(quotient, remainder)。所以divmod(5,2) = (2, 1).
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 2015-10-07
  • 2020-03-05
  • 2016-11-02
  • 2019-02-14
  • 2016-05-21
  • 1970-01-01
相关资源
最近更新 更多