python - 为什么“(值)!= 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位'。我觉得这个问题是基于我的范围功能,但它很容易是其他事情。我怀疑这是有效的,所以除了我的问题的解决方案之外,我愿意接受任何提示。
解决方案
你应该做这个:
if user_bin not in range(256)
或者:
if 0 <= user_bin < 256
str
此外,出于某种明显的原因,您在开始时将 user_bin 设置为。
推荐阅读
- hibernate - 如何在休眠中仅从表和连接表中的多对多关系中获取数据
- javascript - 如何获取文档上的所有嵌套 iframe?
- c# - 从数据库中填充自定义 TreeView,其中父母按字母缩进
- java - 使用 AppCompat 主题后如何删除按钮中多余的白色背景?
- css - 如何使列占用剩余空间
- sql-server - 在数据库中的所有表上执行的 SQL 脚本
- r - 在数据框中过滤具有每个 ID 的最大日期的数据
- reactjs - 服务器端 webpack 无法从 node_modules 读取 css 文件
- java - 如何从文件“历史”中读取 Chrome 年表
- angular - 如何从返回 observable 的函数订阅 observable?