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()返回了一个字符串