今天写的代码和设想的结果不同,找到原因后记录一下。
代码:
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