理解Python的运算优先级问题
我正在做一个模拟测试,但我发现自己在很多关于BEDMAS的问题上都答错了...
a) 25 / 4 + 4 * 10 % 3
b) 25 - 7 * 3 + 12 / 3
c) 17 % 3 * 2 - 12 + 15
a)
6.25 + 4 * 1
10.25
b)
25 - 21 + 4
8
c)
2 * 2 - 12 + 15
4 + 3
7
我只答对了一个(c)。请帮帮我。
1 个回答
2
问题在于你在处理整数而不是浮点数,所以你必须使用整数运算,而不是浮点数运算。
在 整数
运算中:5 / 2
的结果是 2
,而不是 2.5
,因为小数部分 .5
被截断了。如果你想得到 2.5
,你需要这样做:5.0 / 2.0
或者 float(5) / float(2)
。
(注意:正如 @Grijesh 指出的,在 python3 中,5/2
实际上会得到 2.5
)。但是,如果你使用其他语言,我相信结果就如我上面所描述的那样(在 python2.7 中会得到 2
)
如下所示:
a) 25 / 4 + 4 * 10 % 3
b) 25 - 7 * 3 + 12 / 3
c) 17 % 3 * 2 - 12 + 15
a)
6 + 4 * 1
10
b)
25 - 21 + 4
8
c)
2 * 2 - 12 + 15
4 + 3
7
希望这能帮到你。