考虑以下Python
代码:
binaryE = "{0:b}".format(11749)
print binaryE
one = binaryE[0]
zero = binaryE[1]
print one
print zero
if one == 1:
print 'equal'
else:
print 'not equal'
if zero == 0:
print 'equal'
else:
print 'not equal'
控制台的输出是:
10110111100101
1
0
not equal
not equal
为何不平等?顺便说一下,与输出binaryE[index]
进行比较的正确方法是什么?
答案 0 :(得分:2)
它们有不同的类型:
print(type(one), type(1))
# (<type 'str'>, <type 'int'>)
所以你要将字符串与整数进行比较。要解决此问题,请将字符串转换为int:
if int(one) == 1:
print 'equal'
else:
print 'not equal'
if int(zero) == 0:
print 'equal'
else:
print 'not equal'
答案 1 :(得分:0)
您正在尝试将字符串(<class 'str'>
)与整数(<class 'int'>
)进行比较。您需要比较同一类的对象,即整数与整数或字符串相比较的字符串。