python - 包含 0x00 十六进制数时,数组长度返回错误值
问题描述
这是我正在运行的代码(使用 Python 3.7):
barray = {
0x22, 0x00, 0x43, 0x61, 0x62, 0x74, 0x72, 0x6f,
0x6e, 0x69, 0x78, 0x00, 0x01, 0x00, 0x41, 0x54,
0xff, 0xff, 0xff, 0xff
}
asc = '" C a b C a b n i x A T ÿ ÿ ÿ ÿ'
def hex_to_uint(hexarray):
length = len(hexarray)
rows = (length-4)/8
print(length)
print(rows)
# todo write rest of function
我所尊重的是将数字 20 和 2 打印在屏幕上。但是我得到 15 和 1.375。
我认为这与数组中的数字 0x00 有关,但我不知道。
解决方案
您似乎创建了 aset()
而不是 a list()
。python 中的列表是使用方括号创建的,如下所示:[1, 2, 3]
. 一个集合总是会去掉其中的重复元素。您可以在此处阅读内置类型。
我认为这与您的错误有关,因为您将其称为“数组”,但事实并非如此。更改括号并重新运行代码以查看它是否有效。
推荐阅读
- ios - CLLocationManager EXC_BAD_INSTRUCTION
- javascript - TypeScript - 通用函数的 ReturnType 不起作用
- javascript - Sharethis 脚本被另一个脚本替换
- excel - 为什么文件关闭后文件仍保留在项目窗口中?
- angularjs - selected="selected" 应用于 angularjs 中的所有选择选项
- javascript - 如何将输入中的文本添加到我的文章中?
- python - 如果存在另一个数据帧,则比较一个数据帧中两列的行 | Python
- android - 找不到 BiometricPrompt 的支持库
- python - 以无头模式运行 Firefox 的正确方法(Selenium、Python)
- javascript - JQuery,DataTables ...在多次删除后重新绘制/更新单元格或tr