python中的while Ture有什么作用? Python的while 1跟while True到底有什么...

python while true\u5230\u5e95\u6709\u4ec0\u4e48\u4f5c\u7528

\u8fd9\u79cd\u5199\u6cd5\u4e00\u822c\u90fd\u662f\u8981\u6c42\u4e00\u81f4\u6267\u884c\u7684\u7a0b\u5e8f\u624d\u9700\u8981\u3002\u6bd4\u5982\u4f60\u5199\u4e00\u4e2a\u5b9a\u65f6\u4efb\u52a1\uff0c\u7136\u540e\u5728\u91cc\u9762\u52a0\u4e2a\u5b9a\u65f6\u5668\uff0c\u5230\u70b9\u6267\u884c\u4e00\u6b21\u7a0b\u5e8f\u3002

\u5b9a\u4e49\u4e24\u4e2a\u65b9\u6cd5,\u5206\u522b\u4f7f\u7528while\u5faa\u73af
def w() : while 1 : passdef w2() : while True: pass\u5355\u4ece\u529f\u80fd\u4e0a\u8bf4,\u4e24\u79cd\u65e0\u4efb\u4f55\u533a\u522b,\u90a3\u4e48,\u6765\u770b\u770b\u5b57\u8282\u7801\u4e0a\u7684\u533a\u522b:
import dis #\u8f7d\u5165\u53cd\u7f16\u8bd1\u6a21\u5757,Python\u5185\u7f6e\u7684dis.dis(w) #\u5bf9\u5e94\u7684\u662fwhile 1,\u4e0b\u9762\u662f\u8f93\u51fa 2 0 SETUP_LOOP 3 (to 6) 3 >> 3 JUMP_ABSOLUTE 3 >> 6 LOAD_CONST 0 (None) 9 RETURN_VALUEdis.dis(w2) #\u5bf9\u5e94\u7684\u662fwhile True,\u4e0b\u9762\u662f\u8f93\u51fa 2 0 SETUP_LOOP 10 (to 13) >> 3 LOAD_GLOBAL 0 (True) 6 POP_JUMP_IF_FALSE 12 3 9 JUMP_ABSOLUTE 3 >> 12 POP_BLOCK >> 13 LOAD_CONST 0 (None) 16 RETURN_VALUE\u5f88\u660e\u663e, while 1\u7684\u5b57\u8282\u7801\u53ea\u6709while True\u7684\u4e00\u534a.\u4e3a\u4ec0\u4e48\u5462? \u56e0\u4e3aPython2.x\u4e2dTrue\u4e0d\u662f\u5173\u952e\u5b57,\u53ea\u662f\u4e00\u4e2a\u5168\u5c40\u53d8\u91cf\u800c\u5df2
Python3\u4e2d\uff0cTrue\u3001False\u662f\u5173\u952e\u5b57\uff0c\u5c31\u6ca1\u6709\u4ec0\u4e48\u533a\u522b\u4e86\u3002

\u66f4\u8be6\u7ec6,\u66f4\u4e13\u4e1a\u7684\u5206\u6790,\u8bf7\u770b http://stackoverflow.com/questions/3815359/while-1-vs-for-whiletrue-why-is-there-a-difference

题主你好,

    首先要了解在python中, while是用来处理循环结构的,基本语法为:

        while 条件:

            条件成立后执行的语句块

举个例子:

-----

    a = 0

    while a < 3:

        print(a)

        a += 1

    print('执行结束!')

-----

上面代码定首先定义了一个变量a, 并赋初始值为0; 紧接着就是一个while循环, while循环条件为 a < 3; while循环的语句体中有两条语句 print(a)和 a += 1, 也就是说当 a < 3这个条件成立时, 就会执行print(a)和a +=1这2条语句. 接下来我们看执行过程:

  1. 首先 a = 0 执行后, 我们得到了一个值为0的变量a;

  2. 紧接着处理while循环, 先判断 a < 3是否成立, 因为a此时等于0, 而 0 < 3, 所以 a<3这个条件是成立的, 因为执行一次print(a), 此时屏幕上输出了第一个值: 0,  接着处理 a += 1, 这条语句执行后 a的值由0变为了1.

  3. 然后再回到while循环的条件部分, 看看现在是否还成立, 因为 1<3,, 所以 a<3这个条件现在还是成立的, 接着执行while循环语句块中的print(a), 此时得到第2个输出值: 1, 接着执行 a += 1, 此时a的值由1变为了2.

  4. 再回到while循环的条件部分, 还是看条件是否成立, 因为2 < 3, 所以 a<3这个条件成立, 因为还要执行while中的语句块, print(a), 此时得到第3个输出值: 2, 再执行 a +=1, a的值由2变为了3.

  5. 同理, 再回去看while循环的条件部分, 因为 3<3不成立, 所以到此while循环结束了, 跳出while循环继续向下执行print("执行结束!"), 此时得到第4个输出值: "执行结束"

  6. 到此上面的代码就算执行完了

*.上面6步的详细过程是为了让题主了解, while循环语句的执行过程, 这个过程理顺了,题主提的问题也就明白了

--------------

翻过来再看题主的问题:

    while True的作用?

从上面对例子的详细中可以知道, 由于while循环语句的条件部分为True, 即永远成立, 所以会不断的执行while循环的语句体.

举例来说:

-----

    a = 0

    while True:

        print(a)

        a += 1

    print("这句永远不会被执行!")

-----

我就不详述整个执行过程了, 光看while循环语句部分, 由于每次回到while的条件部分得到的都是成立的结果, 所以会一直输出 0, 1, 2...就这样一直输出,不会停止.

写在最后: 当然while True这种语句, 一般都是伴随着, break这种语句的,也就是说在循环语句中加上判断条件, 条件满足就执行break从而跳出循环. 否则死循环一般情况下是没意义的.

希望可以帮到题主, 欢迎追问



while Ture 可以让某个代码块在没有break语句时无限循环比如:
while True:
print('无限循环') #在没有break时会不停的输出 无限循环 这行字

扩展阅读:python while循环例子 ... python中range ... python while true ... python do while循环 ... python输出语句print ... python while循环用法 ... while循环语句python ... python编程for循环 ... while else python ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网