给出以下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]进行比较的正确方法是什么?

最佳答案

它们是不同的类型:

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'

关于python - Python二进制格式异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28577666/

10-17 02:19