所以我有这个功能。为什么我的功能不能打印
def test(fourBits):
binaryDigits = fourBits
if binaryDigits[1] == 1:
print 'test'
如果我进入test('1111')
它不会打印test
。我不明白为什么它不是?
所以我有这个功能。为什么我的功能不能打印
def test(fourBits):
binaryDigits = fourBits
if binaryDigits[1] == 1:
print 'test'
如果我进入test('1111')
它不会打印test
。我不明白为什么它不是?
使用此:
if int(binaryDigits[1]) == 1:
或该:
if binaryDigits[1] == '1':
使得类型匹配,即比较两个字符或两个数字。
尝试print binaryDigits[1]
您if
语句之前看到什么是被你的if
声明隐藏。
在这里没有用。 ''1''和'1'打印完全一样的东西。 – Cairnarvon
'print repr(...)'在这种情况下更有帮助 –
也许你想要的是这样的。使用整数而不是字符串,并通过按位运算符测试该位。
def test(value):
if (value >> 1) & 1:
print 'true'
这是结果。
>>> test(0b0010)
true
>>> test(0b0000)
>>>
因为'1111'是一个字符串,而1是一个整数。 –
也不需要在方法中设置局部变量。 – squiguy