我们可以通过dis模块来查看while_one和while_true的字节码,下面的程序是对刚才的程序进行了一定的简化后的版本 importdisdefwhile_one():while1:passdefwhile_true():whileTrue:passif__name__=="__main__":print"while_one\n"dis.dis(while_one)print"while_true\n"dis.dis(while_true) 执行的结果是: ...
在python2中True不是关键字,True会转化成1之后在进行对比,字节码会比1多,运行效率会慢。但是在python3中,True是关键字,两者的字节码是一样的,但是关键字经过优化,会比整数1效率高一些。 importdisdefrun_1():whileTrue:print("run_1")breakdefrun_2():while1:print("run_2")breakdis.dis(run_1)print(...
由于Python2中,True/False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True/False的值进行检查;而对于1,则被程序进行了优化,而后不会再进行检查。 我们可以通过dis模块来查看while_one和while_true的字节码,下面的程序是对刚才的程序进行了一定的简化后的版本。 Python中的坑?while...
由于Python2中True/False不是关键字,因此我们可以对其进行任意的赋值: 3. True + True = 2 由于bool是继承自int的子类,因此为了保证向下兼容性,在进行算术运算中,True/False会被当作int值来执行。 4. While 1比While True快? 首先来看一个比较while 1和while True循环的脚本,两个函数中,除了1和True的区别之...
由于Python2中,True/False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True/False的值进行检查;而对于1,则被程序进行了优化,而后不会再进行检查。While true 和while 1在python3里面没有区别。 时来天地皆同力,运去英雄不自由...
对这个关于 perl 中的无限循环的问题很感兴趣:while (1) Vs. for (;;) 有速度差异吗?,我决定在 python 中运行类似的比较。我预计编译器会为while(True): pass和while(1): pass生成相同的字节码,但实际上在 python2.7 中并非如此。 以下脚本:
%timeit -n100while_true()100loops, best of3:3.69ms per loop100 loops, best of3:5.61ms per loop while 1 比 while true快很多,原因是在python2.x中,True是一个全局变量,而非关键字。 感谢你能够认真阅读完这篇文章,希望小编分享的“python中while 1比while True更快的示例分析”这篇文章对大家有帮助...
def w() : while 1 : passdef w2() : while True: pass单从功能上说,两种无任何区别,那么,来看看字节码上的区别:import dis #载入反编译模块,Python内置的dis.dis(w) #对应的是while 1,下面是输出 2 0 SETUP_LOOP 3 (to 6) 3 >> 3 JUMP_ABSOLUTE 3 ...
如果条件表达式始终为True,那么while循环将无限执行下去,直到程序被强制终止。这种情况通常被称为无限循环。例如:i = 1 while True: (tab)print(i) (tab)i += 1 在上面的代码中,由于条件表达式为True,因此代码块将无限执行下去,输出数字1到正无穷。但是,请注意,在实际编程中应避免使用无限循环,因为...
由于Python2中True/False不是关键字,因此我们可以对其进行任意的赋值: 3. True + True = 2 由于bool是继承自int的子类,因此为了保证向下兼容性,在进行算术运算中,True/False会被当作int值来执行。 4. While 1比While True快? 首先来看一个比较while 1和while True循环的脚本,两个函数中,除了1和True的区别之...