for……else语句

今天写的代码和设想的结果不同,找到原因后记录一下。
代码:

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中的代码也不会执行。

posted @ 2020-06-10 22:07  小屁孩的觉悟  阅读(496)  评论(0编辑  收藏  举报