今天写的代码和设想的结果不同,找到原因后记录一下。
代码:
from socket import *
tcp_service = socket(AF_INET, SOCK_STREAM)
tcp_service.bind((‘0.0.0.0‘, 8888))
tcp_service.listen(3)
chats = {"名字": "我叫小胖墩",
"年龄": "两岁啦",
"性别": "人家是女孩子哦",
}
while True:
conned, addr = tcp_service.accept()
while True:
data = conned.recv(1024)
if data == b"##":
break
words = data.decode()
print("收到消息:", words)
for i in chats:
if i in words:
conned.send(chats[i].encode())
else:
conned.send("人家还小,听不懂你在说什么?".encode())
conned.close()
tcp_service.close()
结果:
错误误代码:
总结:
在for……else语句中,循环正常结束,会执行else中的代码,当break后,退出循环,这时侯else中的代码也不会执行。
原文:https://www.cnblogs.com/-666/p/13089464.html