import math
user_bin = str
while True:
try:
user_bin = int(input('Please enter binary number: '), 2)
except ValueError:
print('Please make sure your number contains digits 0-1 only.')
if (user_bin) != range(0,256):
print('Please make sure your number is 8-bit')
else:
print(user_bin)
我通过彻底删除if和else语句进行了仔细检查,并且二进制文件已正确转换,但是以某种方式将10101010转换为user_bin转换为170,不在该范围内考虑170的结果,并且始终打印消息“请确保您的电话号码是8位的”。我觉得这个问题是基于我的范围功能,但很可能是其他原因。我怀疑这样做是否有效,因此我愿意接受除解决问题以外的任何技巧。
答案 0 :(得分:4)
您应该这样做:
if user_bin not in range(256)
或:
if 0 <= user_bin < 256
此外,出于某种明显的原因,您还在开始时将user_bin设置为str
。