python加法与乘法编程题_python – 为什么加法和乘法比比较快?

Python中的加法和乘法比比较操作更快,原因在于编译器的Constant Folding和Peep Hole optimizer。通过dis模块分析发现,加法和乘法在编译时即被计算为常量,减少了执行时的步骤,从而提高效率。
摘要由CSDN通过智能技术生成

这是由于

Constant Folding在

Peep Hole

optimizer Python编译器中发生的。

使用dis模块,如果我们中断每个语句以查看在机器级别如何翻译它们,您将观察到所有运算符(如不等式,等式等)首先加载到内存中,然后进行评估。然而,所有表达式,如乘法,加法等都被计算并作为常量加载到内存中。

总而言之,这导致执行步骤较少,使步骤更快:

>>> import dis

>>> def m1(): True != False

>>> dis.dis(m1)

1 0 LOAD_GLOBAL 0 (True)

3 LOAD_GLOBAL 1 (False)

6 COMPARE_OP 3 (!=)

9 POP_TOP

10 LOAD_CONST 0 (None)

13 RETURN_VALUE

>>> def m2(): 2 *2

>>> dis.dis(m2)

1 0 LOAD_CONST 2 (4)

3 POP_TOP

4 LOAD_CONST 0 (None)

7 RETURN_VALUE

>>> def m3(): 2*5

>>> dis.dis(m3)

1 0 LOAD_CONST 3 (10)

3 POP_TOP

4 LOAD_CONST 0 (None)

7 RETURN_VALUE

>>> def m4(): 2 > 0

>>> dis.dis(m4)

1 0 LOAD_CONST 1 (2)

3 LOAD_CONST 2 (0)

6 COMPARE_OP 4 (>)

9 POP_TOP

10 LOAD_CONST 0 (None)

13 RETURN_VALUE

>>> def m5(): True and False

>>> dis.dis(m5)

1 0 LOAD_GLOBAL 0 (True)

3 JUMP_IF_FALSE_OR_POP 9

6 LOAD_GLOBAL 1 (False)

>> 9 POP_TOP

10 LOAD_CONST 0 (None)

13 RETURN_VALUE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值