字符串

  • 字节字符串
    • 借助chr()和ord进行转化
    • 借助struct 模块进行复杂的转化
  • Unicode字符串
    • 转化为字节编码
    • 转化为UTF-8编码

字符串有两种格式,一个是字节字符串,一个是Unicode字符串。

字节字符串

在字节字符串(在Python中由bytes对象表示)中,每个字符仅代表一个字节,因此很容易与文件或外界的其他接口进行交互。
标准字符串仅用一对单引号标识为文字(如example),而字节字符串要求在第一个单引号前包含b。
标准字符串

print('你好')

字节字符串·

print(b'12')
>b'12'

字节字符串中的字符只能是ACSII表中的字符。
输出时会将b带上。

借助chr()和ord进行转化

ord()函数,将返回与之等效的数字 ,只能是单个字符

>>>ord(b'A')
>65]
#也可以迭代字节序列
>>>list(b'Example')
>[69,120,97,109,112,108,101]

,chr()会根据转入的整数值返回单个字符,返回的只是常规的字符串。

>>>chr(65)
>A
#迭代转化
>>>[chr(o) for o in [69,120,97,109,112,108,101]]
['E','x','a','m','p','l','e']

借助struct 模块进行复杂的转化

import struct
>>>struct.pack(b'B',65)
b'A'

B指定了一个无符号的数值,因此不能是负数。范围0~255

import struct
>>>struct.pack(b'b',65)
b'A'

b指定一个有符号的字节,范围-128~127。

双字节

import struct
>>>struct.pack(b'Hh',65,65)
b'A\x00A\x00'

指定字节顺序
大端序:b'>H'
小端序:b'<H'
默认小端序

>>>print(struct.pack(b'>H',65))
>b'\x00A'

一次性打包和解包多个值

import struct
first_name = 'MARY'
last_name = 'Alsh'
age = 28data = struct.pack(b'10s10sB',bytes(first_name,'utf8'),bytes(last_name,'utf8'),age)
print(data)

s格式化代码结合数字前缀,可以表示读取或写入的字符串大小

Unicode字符串

转化为字节编码

编码过程本身是使用字符串的encode()方法进行管理的。只需要传入编码的
名称, encode()方法就会返回一个字节字符串,以表示给定编码中的文本。(当然这些字符都应该是ASCII表中的。

str ='This is a example'.encode()
#str ='This is a example'.encode('ascii')
#str ='This is a example'.encode('ASCII')
print(str)
>b'This is a example'

转化为UTF-8编码

python 杂记(二)相关推荐

  1. 看例子,学 Python(二)

    看例子,学 Python(二) 看例子,学 Python(一) 看例子,学 Python(三) 模块 文件 mymath.py 定义了函数 fib 和 fac,mymath.py 就是一个模块. A ...

  2. python生成二维码、动态二维码 和 而二维码解析

    python生成二维码.动态二维码 和 而二维码解析(8-20190129) 文章目录: 一.二维码介绍 二. 就是为了好玩所以想搞一下二维码,"好玩",少年醒醒,不要骗自己啦,起 ...

  3. 初学Python(二)——数组

    初学Python(二)--数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...

  4. python可以使用二维元组吗_python中读入二维csv格式的表格方法详解(以元组/列表形式表示)...

    怎么去读取一个没有表头的二维csv文件(如下图所示)? 并以元组的形式表现数据: ((1.0, 0.0, 3.0, 180.0), (2.0, 0.0, 2.0, 180.0), (3.0, 0.0, ...

  5. 互联网 4 大发明之二维码,你如何使用 Python 生成二维码?

    阅读文本大概需要 8 分钟. 新时代,人们有人信新的追求,自然而然会有新发明的诞生.去年,在"一带一路"国际合作高峰论坛举行期间, 20 国青年投票选出中国的"新四大发明 ...

  6. [Python图像处理] 二十八.OpenCV快速实现人脸检测及视频中的人脸

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. [Python图像处理] 二十七.OpenGL入门及绘制基本图形(一)

    八年前,我正是通过学习OpenGL和C++,通过做"采蘑菇的小矮人"游戏,慢慢走上并爱上了编程.回过头来,我希望通过Python和OpenGL分享一些有趣的知识,提升您的编程兴趣, ...

  8. 据说这是熟练掌握python的爷们_dongbei 是一门基于 Python 3 二次开发的东北方言编程语言...

    dongbei - 东北方言编程语言 学编程,就整东北浪! 体格咋地 扫码关注原作者微信公众号"老万故事会": 引言 dongbei是啥?它是一门以东北方言词汇为基本关键字的以人为 ...

  9. Python实现二叉搜索树的删除功能

    Python实现二叉搜索树的删除功能 二叉搜索树(二叉查找树,Binary Search Tree)又称为排序二叉树.有序二叉树. 二叉搜索树的实现可以参考:https://blog.csdn.net ...

  10. Python实现二叉搜索树

    Python实现二叉搜索树 二叉搜索树(二叉查找树,Binary Search Tree)是一种特殊的二叉树,又称为排序二叉树.有序二叉树. 二叉搜索树具有如下特性: 1. 如果二叉树的左子树不为空, ...

最新文章

  1. 恢复Opera11.50地址栏的下拉列表按钮
  2. educoder python入门之基础语法-用python实现豆瓣短评通用爬虫(登录、爬取、可视化分析)...
  3. Java字节码方法表与属性表深度剖析
  4. UNIX网络编程笔记(6):I/O复用之select函数
  5. MySQL 指定过滤条件
  6. 人工智能的前景:更高智慧的体的诞生
  7. 关于MongoDB数据库的可连接性稳定性 - 抛转篇
  8. 小小数据统计(柱状图、折线图、扇形图)
  9. 卸载VS2008后重新安装VS2005的苦难历程
  10. 数据可视化大屏有哪些优势
  11. VSC为_LCC 和 VSC (MMC) 的底层特性区别
  12. oppo 手机计算机历史记录,粘贴板历史记录
  13. 杨韬的Markdown自定义CSS样式
  14. web 视频演示,MP4小视频免费下载
  15. 报错:跨域问题解决 No ‘Access-Control-Allow-Origin‘ header is present on the requested resource.
  16. Windows下的定时任务设置
  17. 使用canvas制作背景水印
  18. 十进制转化为二进制代码及流程图
  19. mysql:百度地图经纬度,按照经纬度坐标排序查询
  20. 二阶振荡环节的谐振频率_典型环节的频率特性二阶振荡环节-西安电子科技大学.PPT...

热门文章

  1. pythonslice_shift_Pandas 解决dataframe的一列进行向下顺移问题
  2. NFS服务器是什么?(Network File System 网络文件系统)(远程主机间 mount 挂载目录)(ubuntu:nfs-kernel-server)
  3. python 如何获取数组(列表)长度? len()
  4. Python学习笔记(基础知识点二)开更了~
  5. Java虚拟机JVM常用的几种回收算法和垃圾回收器
  6. mysql_rollback_MySQL的rollback--事务回滚
  7. Java线程知识整理汇总
  8. exhaustion java_Java Exceptions
  9. mysql中shift h_MySQL复制技术对比与容器化探究
  10. 英文翻译_科研论文英文翻译时需注意的事项及一些对策