Почему "(значение)! = Диапазон (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-битное '. Я чувствую, что проблема связана с моей функцией диапазона, но это могут быть другие вещи. Я сомневаюсь, что это сделано эффективно, поэтому я открыт для любых советов, помимо решения моего вопроса.

Число не может быть диапазоном равно, это не имеет смысла. Это может быть в диапазон. Также обратите внимание, что канонический способ сделать это будет больше похож на 0 <= user_bin < 256.

jonrsharpe 09.08.2018 23:57

ааа имеет смысл, спасибо за быстрый ответ

nedarb 09.08.2018 23:59
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
2
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы должны сделать это:

if user_bin not in range(256)

или:

if 0 <= user_bin < 256

Кроме того, по какой-то очевидной причине вы устанавливаете user_bin на str с самого начала.

ах, user_bin для str был остатком от ранее предпринятого решения, которое я не знал, нужно ли мне еще. Первоначально пытались использовать len () для определения длины входных данных, но выбрали другой путь.

nedarb 10.08.2018 00:01

Другие вопросы по теме