Python 比较数据格式

Python 比较数据格式,python,python-2.7,Python,Python 2.7,请有人向我解释为什么cmd和req被认为是不平等的?还有,我怎样才能使他们平等呢 cmd = 0x10 test1 = '\x10' req = test1[0] if(cmd is req): print "Equal" else: print "Not Equal" 我使用的是python 2.7。关键字是不测试相等性。它测试身份。如果要检查字符串是否相等,只需使用== 在这种情况下,还需要首先将整数转换为字符串 a是b与ida==idb相同,从id的文档中可以看出: 返回

请有人向我解释为什么cmd和req被认为是不平等的?还有,我怎样才能使他们平等呢

cmd = 0x10
test1 = '\x10'
req = test1[0]
if(cmd is req):
    print "Equal"
else:
    print "Not Equal"
我使用的是python 2.7。

关键字是不测试相等性。它测试身份。如果要检查字符串是否相等,只需使用==

在这种情况下,还需要首先将整数转换为字符串

a是b与ida==idb相同,从id的文档中可以看出:

返回对象的“标识”。这是一个整数或长整数,保证该对象在其生存期内唯一且恒定。两个生命周期不重叠的对象可能具有相同的id值

CPython实现细节:这是中对象的地址 记忆

关键字为“不测试相等性”。它测试身份。如果要检查字符串是否相等,只需使用==

在这种情况下,还需要首先将整数转换为字符串

a是b与ida==idb相同,从id的文档中可以看出:

返回对象的“标识”。这是一个整数或长整数,保证该对象在其生存期内唯一且恒定。两个生命周期不重叠的对象可能具有相同的id值

CPython实现细节:这是中对象的地址 记忆

cmd是一个整数。req是一个字符串。这两者不相等,因此您的代码打印不相等

您可以这样做:

if chr(cmd) == test1[0]:
    print "Equal"
else:
    print "Not Equal"
将0-255范围内的整数转换为对应于该整数的单字节字符串

另外,使用==测试相等性,而不是is

你可以写得更简单一些:

print "Equal" if chr(cmd) == test1[0] else "Not Equal"
为了完整性起见,您可以使用将test1[0]转换为整数,这是chr的倒数:

cmd是一个整数。req是一个字符串。这两者不相等,因此您的代码打印不相等

您可以这样做:

if chr(cmd) == test1[0]:
    print "Equal"
else:
    print "Not Equal"
将0-255范围内的整数转换为对应于该整数的单字节字符串

另外,使用==测试相等性,而不是is

你可以写得更简单一些:

print "Equal" if chr(cmd) == test1[0] else "Not Equal"
为了完整性起见,您可以使用将test1[0]转换为整数,这是chr的倒数:


“从不使用”用于相等性测试,仅用于标识测试。@trentcl建议编辑“从不使用”用于相等性测试,仅用于标识测试。@trentcl建议编辑