Python 什么';What’while(这个)和while True之间的区别是什么
这两个实现之间的差异,我发现很难在套接字实现中使用它来学习两个无限循环示例之间的差异Python 什么';What’while(这个)和while True之间的区别是什么,python,sockets,while-loop,Python,Sockets,While Loop,这两个实现之间的差异,我发现很难在套接字实现中使用它来学习两个无限循环示例之间的差异 data = 'dummy' while len(data): #infinite loop implemented here data = socket.recv(2048) print data, ip, port 第二个无限循环实现 while True: #another example of an infinite loop data = socket.recv(2
data = 'dummy'
while len(data): #infinite loop implemented here
data = socket.recv(2048)
print data, ip, port
第二个无限循环实现
while True: #another example of an infinite loop
data = socket.recv(2048)
print data, ip, port
第一个循环实际上不是无限的
socket.recv
可以返回空字符串,这意味着另一端关闭了连接。在这种情况下,第一个循环将停止,而“真”无限循环将尝试从闭合连接读取数据。我认为代码不相等,因为:
in : bool(0)
out: False
在第一个示例中,如果data
将成为一个空列表或空字符串,那么len(data)=0
并且由于0->False
循环将停止
第二个例子是一个真正的无限循环。在第一种情况下,
数据被设置在循环内部,因此如果它被设置为长度为零的某个值,循环将退出。它不一定是一个无限循环
在第二种情况下,循环不会退出(除非出现异常)。如果len(data)>0
永远退出,则操作没有差异;在这种情况下,后者更好,因为它显式是无限的。如果len(data)==0
是可能的,那么它们是不等价的