BODMAS - 蟒蛇

时间:2015-05-17 10:58:07

标签: python

我以为我了解BODMAS(英国的BIDMAS)。我不确定为什么以下表达式以不同的顺序进行评估:

a = 8*4//3

我希望“分裂”首先发生,给出a = 8*1 - 而不是'倍增'首先发生,给出a = 32//3 = 10

b = 9//3*7

根据BIDMAS规则,示例b的计算结果为21。

似乎python从左到右执行一个表达式,并将'division'和'multiplication'视为等价。发生了什么?在此先感谢,Faz。

3 个答案:

答案 0 :(得分:2)

BEDMASBIDMASBOMDASBODMASPEDMAS和其他order of operations首字母缩略词中,除法和乘法具有相同的权重并且在当前块内从左到右计算。

请阅读此section以获得澄清。

答案 1 :(得分:0)

如果你进行乘法和除法,那么你执行它的顺序并不重要,例如6 * 5/3 = 10与6/3 * 5 = 10相同。差异来自于6 + 3的加法3 * 5 = 21但是(6 + 3)* 5 = 45。

答案 2 :(得分:0)

将OP上的评论转换为独立答案,因为该帖子显示在搜索结果的顶部:

在Python中以及根据BODMAS / BEDMAS / BIDMAS / BIMDAS / BOMDAS / PEDMAS rule,乘法和除法具有相同的优先级,因此评估从左向右{{ 3}}