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

时间:2009-09-29 14:44:03

标签: 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"

1 个答案:

答案 0 :(得分:5)

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