在Python中,相同的字符串返回FALSE和'==',为什么?

ple*_*oux 1 python string-comparison

数据字符串通过套接字连接接收.当收到动作变量='IDENTIFY'的第一个例子时,它可以工作.但是当收到动作变量='MSG'的第二个例子时,它不会进行比较.

最奇怪的是,当我使用Telnet而不是我的套接字客户端时,两者都是成功比较的.但字符串是相同的...字符串是否有可能以相同的方式编码?我怎么知道?

数据示例:

data = 'IDENTIFY 54143'
or
data = 'MSG allo'

action = data.partition(' ')[0]
if action == "MSG":
    self.sendMessage(data)
elif action == "IDENTIFY":  
    self.sendIdentify(data)
else:
    print "false"
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 5

无法重现您的问题.要调试它,打印或记录repr()of dataaction:这可能会显示原因(可能是一些不可见的二进制字节已经进入data,基于你如何获得它[[你没有向我们展示]]并因此进入action).