首页 > 解决方案 > 为什么“(值)!= range(0,256)”不检测0-256范围之外的值?

问题描述

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 转换为 170 作为 user_bin,170 的结果不被认为在范围内,它总是打印消息“请确保你的数字是8位'。我觉得这个问题是基于我的范围功能,但它很容易是其他事情。我怀疑这是有效的,所以除了我的问题的解决方案之外,我愿意接受任何提示。

标签: python

解决方案


你应该做这个:

if user_bin not in range(256)

或者:

if 0 <= user_bin < 256

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


推荐阅读