既然我可以用任何unicode字符直接声明变量,为什么python需要unicode类型?

2024-05-15 06:15:58 发布

您现在位置:Python中文网/ 问答频道 /正文

几天前我仔细阅读了unicode pain的文章,几个小时前我问了这个问题:

Do I have to encode unicode variable before write to file?

但最近我想到一个奇怪的问题。你知道吗

我发现这些代码工作正常:

chinese = ['中文', '你好']  # py2, these are bytes, type is str
with open('filename', 'wb') as f:
    f.writelines(chinese)

既然我可以用py2和py3中的任何unicode字符直接声明变量,那么python(或我们)得到的unicode类型是什么?我们不能在整个程序中使用str(py2)和bytes(py3)类型吗?那所谓的痛苦就不存在了。你知道吗

有人能给我一些见解吗?你知道吗


Tags: to类型byteshave文章unicodepy3do
1条回答
网友
1楼 · 发布于 2024-05-15 06:15:58

Since I can declare a variable directly with any unicode characters [...]

但你不是这么做的。它们看起来像字符,但在源文件中被编码为字节。如果您尝试对这些值执行任何实际有用的操作,例如切片、下标、取长度,则所有操作都会失败。这就是“痛苦”。你知道吗

>>> '中文'[1]
'\xb8'

相关问题 更多 >

    热门问题