为什么“(value)!= range(0,256)”不能检测到0-256范围之外的值?

时间:2018-08-09 21:54:56

标签: python

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位的”。我觉得这个问题是基于我的范围功能,但很可能是其他原因。我怀疑这样做是否有效,因此我愿意接受除解决问题以外的任何技巧。

1 个答案:

答案 0 :(得分:4)

您应该这样做:

if user_bin not in range(256)

或:

if 0 <= user_bin < 256

此外,出于某种明显的原因,您还在开始时将user_bin设置为str