Python:将原始输入()转换为二进制,然后在函数中使用它

Python:将原始输入()转换为二进制,然后在函数中使用它,python,Python,我正在研究一个函数,它检查二进制文件中右边的第四位是否处于活动状态 这是我的密码: bit2= 0b1000 entry = bin(int(raw_input("Type a number : "))) def verifier_bit4(entry): if entry & bit2 > 0 : return "on" else: return "off" print verifier_bit4(entry) 如果将ent

我正在研究一个函数,它检查二进制文件中右边的第四位是否处于活动状态

这是我的密码:

bit2= 0b1000
entry = bin(int(raw_input("Type a number : ")))


def verifier_bit4(entry):
    if entry & bit2 > 0 :
        return "on"
    else:
        return "off"

print verifier_bit4(entry)
如果将entry的值定义为二进制(例如:entry=0b1001),则工作正常

但是,我决定让它更方便用户,并要求用户使用
raw\u input()
输入一个数字

然后我得到了这个错误消息:

回溯(最近一次调用last):文件“python”,第11行,在
文件“python”,第6行,在验证器中\u bit4 TypeError:
&:'str'和'int'的操作数类型不受支持


我检查了变量'entry',它确实是一个二进制文件,所以我不明白为什么我的代码不能工作


有人帮忙吗?:)

实际上
bin
返回二进制数字的字符串表示形式:

>>> bin(123)
'0b1111011'

您可以删除该
bin
调用,因为您可能希望在此处使用
int

按位操作数不需要二进制:

>>> 32 & 8
0
>>> 12 & 8
8
它们是在整数上定义的:

bit2 = 0b1000
entry = int(raw_input("Type a number : "))


def verifier_bit4(entry):
    if entry & bit2 > 0 :
        return "on"
    else:
        return "off"

print verifier_bit4(entry)

如果要让用户在二进制表示中输入数字,必须告诉
int()

entry = int(raw_input("Type a number : "), 2)

然后可以像
0b0010
这样输入。

“我检查了变量'entry',它确实是一个二进制”。但是Python没有“二进制”类型。我很确定
bin
返回一个字符串。@Kevin Python的二进制类型可以说是
bool
;)谢谢@wim!我不知道bin()返回了一个字符串