Python二进制格式异常

2024-09-24 08:38:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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


Tags: 方法代码formatindexifnotequalone
2条回答

您试图将字符串(<class 'str'>)与整数(<class 'int'>)进行比较。您需要比较同一类的对象,即整数与整数的比较或字符串与字符串的比较。你知道吗

它们有不同的类型:

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'

相关问题 更多 >