python2中字符串分为2种类型:

  • 字节类型:str,字节类型,通过decode()转化为unicode类型

  • unicode类型:unicode ,通过encode转化为str字节类型

  字节类型 和 unicode类型的转化:

    • 字节类型通过decode转化为unciode类型
    • unciode类型通过encode方法转化为直接类型
    • 方法的使用和python3相同,但是在方法中默认的编码方式为ascii, 对中文需要手动指定为utf-8

python3中字符串分为2种类型:

  • str:unicode,通过encode() 转化为bytes

  • bytes:字节类型,通过decode()转化为 str类型

1. str/bytes

  Python 3 所有的 strings 均是 unicode 类型。

  Python 2 将 strings 处理为原生的 bytes 类型,而不是 unicode。

# python3 中
# python3 中

>>> a = '中文'

>>> a
'中文' >>> type(a)
<class 'str'>
# python2中,由于a已经是字节类型,所以只能对其进行解码变为str类型,不能对其进行编码.(根据2.x版本不同,有时候也不能进行解码)
# python2中

>>> a = '中文'

>>> a
'\xd6\xd0\xce\xc4' >>> type(a)
<type 'str'> # 相当于 b"中文" 这个写法
>>> b = b"中文" >>> b
'\xd6\xd0\xce\xc4' >>> type(b)
<type 'str'>

2. str 与 bytes 之间的类型转换

str 与 bytes 之间的类型转换如下:

# str 与 bytes 之间的类型转换如下:
str -> bytes: bytes(s, encoding='utf8')
bytes -> str: str(b, encoding='utf-8') # 通过编码解码的形式对二者进行转换
str 编码成 bytes 格式: str.encode(s)
bytes 格式编码成 str 类型: bytes.decode(b)

另附: python str与bytes之间的转换

# bytes object
b = b"example" # str object
s = "example" # str to bytes
bytes(s, encoding = "utf8") # bytes to str
str(b, encoding = "utf-8") # an alternative method
# str to bytes
str.encode(s) # bytes to str
bytes.decode(b)

Python2和3版本对str和bytes类型的处理的更多相关文章

  1. Python 3中的str和bytes类型

    Python3 中的str和bytes类型 Python3最重要的新特性之一是:对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Pyt ...

  2. Python str 与 bytes 类型(Python2/3 对 str 的处理)

    本文均在 Python 3 下测试通过,python 2.x 会略有不同. 1. str/bytes >> s = '123' >> type(s) str >> ...

  3. python之路day06--python2/3小区别,小数据池的概念,编码的进阶str转为bytes类型,编码和解码

    python2#print() print'abc'#range() xrange()生成器#raw_input() python3# print('abc')# range()# input() = ...

  4. Python str 与 bytes 类型 之间的转换

    bytes:字节数组,通常用它可以描述 “一个字符串”,只不过该字符串是  “bytes类型”,所以容易与str类型混淆,他们二者之间的转换: https://blog.csdn.net/lanchu ...

  5. 关于python2中的unicode和str以及python3中的str和bytes

    python3有两种表示字符序列的类型:bytes和str.前者的实例包含原始的8位值:后者的实例包含Unicode字符. python2中也有两种表示字符序列的类型,分别叫做str和unicode. ...

  6. 三目运算的使用&bytes类型转str类型

    一.三目运算的使用 就像c语言中有三目运算符一样,python中也有三目运算符,废话不多说直接上代码 a=3 c=4 b=a if a>c else c print(b) 意思就和 if a&g ...

  7. python2与python3的区别 ,小数据池 bytes 类型

    一.python2和3的区别 在python3中 在python2中 print('ab')方式打印内容()括号是必须要有的.   print 'ab' 可以加可以不加. 只有range   有ran ...

  8. TypeError: write() argument must be str, not bytes报错原因及Python3写入二进制文件方法

    Python2随机写入二进制文件: with open('/python2/random.bin','w') as f: f.write(os.urandom(10)) 但使用Python3会报错: ...

  9. 由time.tzname返回值引发的对str、bytes转换时编码问题实践

    Windows 10家庭中文版,Python 3.6.4, 下午复习了一下time模块,熟悉一下其中的各种时间格式的转换:时间戳浮点数.struct_tm.字符串,还算顺利. 可是,测试其中的time ...

随机推荐

  1. windows 与 mac socket通信

    #include <Winsock2.h> #include <stdio.h> void main() { // 以下的几句都是固定的 WORD wVersionReques ...

  2. MIUI6系统详细卡刷开发版获得root权限的经验

    小米的手机不同手机型号通常情况miui论坛都提供两个不同的版本,分别为稳定版和开发版,稳定版没有提供ROOT权限管理,开发版中就开启了ROOT权限,很多情况下我们需要使用的一些功能强大的App,都需要 ...

  3. Markdown 简单语法

    标题 文本前面加上 '#' 和一个空格 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 加粗 文本两侧加上 '**' 加粗文本 斜体 文本两侧加上 '*' 斜体文本 斜体加粗 文本两侧加上 ...

  4. 如何用Fiddler手机抓包

    截获智能手机发出的HTTP包有什么用? 用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序: 用处二: 软件测试人员用于测试智能手机上的软件: 用处三: 可以用来 ...

  5. Anatomy of a Database System学习笔记 - 概论、并发控制

    <Anatomy of a Database System>这篇发表于87年.一共48页的论文据说是DBA入门必看,但是找了全网没有找到中文翻译.这篇文章对关系型数据库确实有提纲挈领的作用 ...

  6. 创建只读账号oracle

    1.创建用户,指定哪个表空间create user test2 identified by "123" default tablespace BDCDJ_XC temporary ...

  7. 如何才能成为一个合格的web前端工程师

    转载原文地址:https://juejin.im/post/5cc1da82f265da036023b628 开篇前端开发是一个非常特殊的行业,它的历史实际上不是很长,但是知识之繁杂,技术迭代速度之快 ...

  8. JEECG 上传插件升级-标签

    前言: 现有的uploadify上传是基于swf的,随着H5的普及,flash即将退出历史舞台,JEECG团队本着与时俱进的原则,将全面升级JEECG系统中的上传功能,采用新式上传插件plupload ...

  9. Django03-视图系统views

    一.编写视图 一个视图函数,是一个简单的Python函数,它接受web请求,并且返回web响应.响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是 ...

  10. gson格式化参数 对象转Map

    前台传json到后台接收: String  params = request.getParameters("paramtes"); Map<String, Map<St ...