理解Python的运算优先级问题

2 投票
1 回答
1715 浏览
提问于 2025-04-18 00:32

我正在做一个模拟测试,但我发现自己在很多关于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

希望这能帮到你。

撰写回答