![]() |
1
1
这个
|
![]() |
2
0
区别在于cpu级别。现在的CPU带有专用的逻辑操作指令。如果你使用它们,你可以显著地加快你的代码。这就是为什么
当然,每个人都会选择选项1,这就是我们使用and运算符的原因。甚至python解释器本身也使用其父语言C.C定义的and运算符。C内部使用汇编程序定义的and操作符。而且,汇编程序使用CPU定义的“and”指令。 没有定义“和”这回事。它是在硬件级别定义的。 至于性能,我们来看看:
该输出:
奇怪的是,python优化了我的测试代码,因此系数只有2.8,事实上,如果python没有优化我的测试码,这个系数可能会在100左右。 |
![]() |
3
-1
在我看来,使用AND运算符有其好处: 1) 广为人知且易于“新”编码器理解。 2) 将更好地适用于不同类型的变量,您的代码仅适用于布尔值。 3) 短周期评估 |
|
4
-2
逻辑运算符和链式if条件都可以获得类似的结果,但它们之间存在一些差异: 逻辑运算符是内置的符号,如和、或,而不是直接对布尔值(True或False)进行运算。它们计算两个操作数,并根据特定运算符的逻辑返回单个布尔结果(例如,仅当两个操作都为True时才返回True)。它们通常执行短路求值,这意味着一旦能够确定最终结果,就停止求值操作数。例如,如果第一个操作数为False,则停止计算第二个操作数。如果一个操作数的计算成本很高,这可以提高效率。 链式if条件:它们按顺序评估每个条件,而不管结果是否已经确定。如果某些条件的计算成本很高,这可能会降低效率 链式if条件涉及一个接一个地使用多个if语句,按顺序检查每个条件。每个if语句的代码块仅在其条件为True时执行。如果任何条件为False,则跳过剩余的If语句。由于它们的简洁性、可读性和短路评估的潜在效率,它们通常是简单表达式的首选语句。如果条件语句更适合复杂逻辑,或者当您需要对求值流进行更多控制时,则链接。 |