1

所以我有这个功能。

def test(fourBits):
  binaryDigits = fourBits
  if binaryDigits[1] == 1:
     print 'test'

如果我输入test('1111')它不会打印test。我不明白为什么不是?

4

4 回答 4

3

binaryDigits[1] 是字符串,1 是整数

于 2013-05-29T02:34:51.490 回答
3

用这个:

if int(binaryDigits[1]) == 1:

或这个:

if binaryDigits[1] == '1':

以便类型匹配,即比较两个字符或两个数字。

于 2013-05-29T02:35:15.680 回答
1

也许你想要的是这样的东西。使用整数而不是字符串,并通过位运算符测试位。

def test(value):
    if (value >> 1) & 1:
        print 'true'

这是结果。

>>> test(0b0010)
true
>>> test(0b0000)
>>>
于 2013-05-29T02:44:59.180 回答
0

print binaryDigits[1]在你的陈述之前尝试if看看你的if陈述隐藏了什么。

于 2013-05-29T02:35:40.653 回答