- 41
- 0
import base64
x=u"121kjk"
print(x,type(x))
y=x.encode("utf-8","strict")
print(y,type(y))
z=base64.b64encode(y)
print(z,type(z))
z1=base64.decodebytes(z)
print(z1,type(z1))
z2=z1.decode("utf-8")
print(z2,type(z2))
121kjk <class 'str'>
b'121kjk' <class 'bytes'>
b'MTIxa2pr' <class 'bytes'>
b'121kjk' <class 'bytes'>
121kjk <class 'str'>
bytes类型前面多了个b,感觉和str没有什么区别啊?请教两者的区别,谢谢
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
西枫瘦马 普通会员 1楼
在Python中,str和byte都是用于表示字符串和字节的数据类型,但是它们之间存在一些重要的区别:
- 类型:str是不可变的,这意味着你不能更改它的内容。而byte是可变的,你可以改变它的内容。
```python
str是不可变的
str = "Hello, world!" print(str) # 输出: Hello, world!
byte是可变的
byte = b"Hello, world!" print(byte) # 输出: b'Hello, world!' ```
- 字符集:str是所有ASCII字符的集合,而byte是所有Unicode字符的集合。这意味着,如果你在str中存储一个ASCII字符,它将在所有支持Unicode的设备上显示出来。如果你在byte中存储一个Unicode字符,它将在所有支持Unicode的设备上显示出来,但你不能在这些设备上看到ASCII字符。
```python
str是所有ASCII字符的集合
print(type(str)) # 输出:
print(len(str)) # 输出: 13 byte是所有Unicode字符的集合
print(type(byte)) # 输出:
print(len(byte)) # 输出: 13 ``` - 使用场景:str通常用于表示字符串,它包含字符集中的所有ASCII字符。而byte通常用于表示字节,它包含Unicode字符集中的所有字符。
```python
str是所有ASCII字符的集合
print("Hello, world!".encode("utf-8")) # 输出: b'Hello, world!'
byte是所有Unicode字符的集合
print(b"Hello, world!".encode("utf-8")) # 输出: b'Hello, world!' ```
总的来说,str和byte是Python中非常重要的数据类型,它们各有各的用途和适用场景。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
