flash程序员对python中while True的理解

搞惯了as,学起来python,还是有一点障碍的,就比如as里执行了while(true)那肯定是死循环,而python的socket建立却恰恰是这样写滴:

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(addr)
server.listen(
999)

while True:
clientSock,addrs
= server.accept()

print "client ip:" + str(addrs[0])
print "client port:" + str(addrs[1])

  让我这个aser纳闷了许久,python为啥要不停的执行循环体?今天搞了个小实验,突然顿悟了。原来while True在socket连接中并不是在不停的循环,而是第一次执行后,socket.accept()就会处于监听模式,什么时候监听到有连接了,什么时候继续往下执行下一循环体。如果没连接,就不会执行下一循环。这下终于理解了。

还有不明白的同学可以这样实验一下

while True:
print 'running'

运行后者会发下屏幕会不停的输出'running'  

还要提醒aser的是python中'isflash'+123是错误的。这就说明python在字符和数字相加时不会主动帮你进行强制类型转换,需要手动处理为'isflash'+str(123)

posted @ 2011-08-21 13:28  硕气书生  Views(5323)  Comments(0Edit  收藏  举报