我正在尝试获取python 3.4中字节字符串的第一个字符,但是当我对其进行索引时,我得到了int
:
>>> my_bytes = b'just a byte string'
b'just a byte string'
>>> my_bytes[0]
106
>>> type(my_bytes[0])
<class 'int'>
正如我期望的那样,这对我来说似乎并不直观b'j'
。
我发现我可以得到我期望的价值,但是对我来说,这就像是一个hack。
>>> my_bytes[0:1]
b'j'
有人可以解释为什么会这样吗?
该bytes
类型是Binary
Sequence类型
,并且明确记录为包含0到255范围内的整数序列。
从文档中:
字节对象是单个字节的不可变序列。
[…]
尽管字节文字和表示形式均基于ASCII文本,但字节对象实际上的行为就像不可变的整数序列,该序列中的每个值都受到限制,使得
0 <= x < 256
[。][…]
由于bytes对象是整数序列(类似于元组),因此对于bytes object
b
,b[0]
它将是integer
,而b[0:1]
将是bytes
长度为1的对象。(这与文本字符串形成对比,在文本字符串中,索引和切片都会产生一个字符串长度1)。
大胆强调我的。注意,在序列类型中索引字符串不是一个例外。'abc'[0]
给你一个str
长度为1的物体;str
是唯一始终包含其自身类型元素的序列类型。
这与其他语言如何处理字符串数据相呼应。在C语言中,unsigned char
类型实际上也是0-255范围内的整数。unsigned
如果您使用非限定char
类型,则许多C编译器默认为,并且文本被建模为char[]
数组。
问题内容: 我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个: 其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到 我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我就会遇到更多问题,但是就目前而言,我只是喜欢这个工作! 当我将陈述调整为 我得到的是…“问题”-所以我
我编写了这段代码,将整个以10为基数的数字转换成二进制。我相信代码就是它所需要的一切,但我无法让工作。 我在这个网站和其他网站上花了几个小时,尝试了无数次的修改,但都没有用。 我已经让代码无错误地编译,但一旦我运行它并输入程序就会崩溃。 下面是代码: 这些是java在我输入数字时抛出的异常。 我希望这是足够的信息。
问题内容: 我正在学习python并试图将github问题转换为可读形式。使用有关如何将JSON转换为CSV的建议?我想出了这个: 其中“ issues.json”是包含我的github问题的json文件。当我尝试运行它时,我得到 我在这里想念什么?哪些是“字符串索引”?我确定一旦完成这项工作,我还会遇到更多问题,但是就目前而言,我只是希望它可以工作! 当我将陈述调整为 我得到的是…“问题”-所以
问题内容: 我有tyo字节变量 如果我将它们求和,则求和的值为整数。 为什么a + b是int? 问题答案: 因为Java语言规范这么说 对操作数(第5.6.2节)执行二进制数值提升。 请注意,二进制数值升级执行值集转换(第5.1.13节),并且可能执行拆箱转换(第5.1.8节)。 数字操作数上加法表达式的类型是其操作数的提升类型。 并且,关于数字促销, 扩展原语转换(第5.1.2节)适用于转换以
我有 tyo 字节变量 如果我对它们求和,sum的值是整数。 为什么 b 是整数?
我正在阅读Al Sweigart的书《自动化无聊的东西》,我对我遇到的索引错误感到不知所措。我正在使用PyPDF2尝试打开一个加密的PDF文档。我知道这本书是2015年的,所以我去了文档,看看我是否遗漏了什么,一切似乎都一样,至少据我所知。所以我不确定这里出了什么问题。 给予: 在问我的问题之前,我在谷歌上搜索了一下,找到了这个带有“建议修复”的链接。然而,我对这一点很陌生,想看看解决方法是什么。