2013-05-29 210 views
1

所以我有这个功能。为什么我的功能不能打印

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

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

+2

因为'1111'是一个字符串,而1是一个整数。 –

+0

也不需要在方法中设置局部变量。 – squiguy

回答

3

使用此:

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

或该:

if binaryDigits[1] == '1': 

使得类型匹配,即比较两个字符或两个数字。

3

binaryDigits [1]是一个字符串,1为整数

+0

干杯家伙我知道这是愚蠢的。生活和学习我猜。 – Danrex

0

尝试print binaryDigits[1]if语句之前看到什么是被你的if声明隐藏。

+0

在这里没有用。 ''1''和'1'打印完全一样的东西。 – Cairnarvon

+0

'print repr(...)'在这种情况下更有帮助 –

1

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

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

这是结果。

>>> test(0b0010) 
true 
>>> test(0b0000) 
>>>