Python中的操作模与顺序

2024-05-12 17:00:45 发布

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

在Zed Shaw的Learn Python the Hard Way(第15-16页)中,他有一个示例练习

 100 - 25 * 3 % 4

结果是97(试试!)

我看不出能做到这一点的操作顺序。。

100-25=75
3%4=0
或(100-25*3)=225%4=???但无论如何我不认为97。。。

类似的例子是3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6,它产生7

手术按什么顺序进行?


Tags: the示例顺序learnway例子手术zed
3条回答

对于第一个示例:*%优先于-,因此我们首先计算25 * 3 % 4*%从左到右具有相同的优先级和关联性,因此我们从左到右进行计算,从25 * 3开始。这产生75。现在我们计算75 % 4,得到3。最后,100 - 397

我找到了你第二个问题的答案,因为它也困扰着我——Zac的回答很接近,但是1/4结果的丢失是因为Python2.X正在截断整数除法结果。所以它首先计算模运算,然后除法(因为它不是浮点数,所以返回为0)。

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

乘法>;>;mod>;>;减法

In [3]: 25 * 3
Out[3]: 75

In [4]: 75 % 4
Out[4]: 3

In [5]: 100 - 3
Out[5]: 97

乘法和模运算符具有相同的优先级,因此在本例中从左到右求值。

相关问题 更多 >