Python 比较数据格式
请有人向我解释为什么cmd和req被认为是不平等的?还有,我怎样才能使他们平等呢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 = 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建议编辑