在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的字节码,下面的程序是对刚才的程序进行了一定的简化后的版本 importdisdefwhile_one...
由于Python2中,True/False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True/False的值进行检查;而对于1,则被程序进行了优化,而后不会再进行检查。 我们可以通过dis模块来查看while_one和while_true的字节码,下面的程序是对刚才的程序进行了一定的简化后的版本。 执行的结果是: 可以...
我预计编译器会为while(True): pass和while(1): pass生成相同的字节码,但实际上在 python2.7 中并非如此。 以下脚本: importdisdefwhile_one():while1:passdefwhile_true():whileTrue:passprint("while 1")print("---")dis.dis(while_one)print("while True")print("---")dis.dis(while_true) 产生...
首先来看一个比较while 1和while True循环的脚本,两个函数中,除了1和True的区别之外,其他地方完全相同。 执行结果: while one: 1.37000703812 while_true: 2.07638716698 可以看出wihle 1的执行时间约为while True的2/3。 那么,这是为什么呢? 其实这就是前提中提到的关键字的问题。由于Python2中,True/False不是关...
由于Python2中,True/False不是关键字,因此我们可以对其进行任意的赋值,这就导致程序在每次循环时都需要对True/False的值进行检查;而对于1,则被程序进行了优化,而后不会再进行检查。While true 和while 1在python3里面没有区别。 时来天地皆同力,运去英雄不自由...
4. While 1比While True快? 首先来看一个比较while 1和while True循环的脚本,两个函数中,除了1和True的区别之外,其他地方完全相同。 Python中的坑?while1比whileTrue更快? 执行结果: while one: 1.37000703812 while_true: 2.07638716698 可以看出wihle 1的执行时间约为while True的2/3。
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 ...
数字 像while 1, while 2, while -1, while -2, while x, 只要x不等于0, 就是条件永远为真, 等价于while True while 0 等价于 while False 其他变量,如字符串, 列表, 元组等 while '1', while [1, 2], while (1, 2), while x, 只要len(x)>0, 就是条件永远为真, 等价于while...
1就是true while(1)和while(true)是一个意思,就是无限循环,一般在内部写break退出循环.用法举例: 如果变量 i 等于100是已知条件.那么C#就这样写,while(i==100){ i++;if(i==150) bread; // 循环50次退出循环 }