本文主要给大家介绍了关于 Python中的字符串操作和编码Unicode的一些知识,下面话不多说,需要的朋友们下面来一起学习吧。
字符串类型
str
:Unicode字符串。采用''或者r''构造的字符串均为str,单引号可以用双引号或者三引号来代替。无论用哪种方式进行制定,在Python内部存储时没有区别。
bytes
:二进制字符串。由于jpg等其他格式的文件不能用str进行显示,所以才用bytes来表示,bytes的每个字节为一个0-255的数字。如果打印的时候,Python会把能够用ASCII表示的部分显示为ASCII,这样方便阅读。bytes几乎支持除了格式化以外的所有str的方法,甚至包括了re模块
bytearray()
:二进制可原地变动的字符串。
utf-8编码范围
字节顺序标记BOM
BOM是byte order marker的缩写,
指定编码写入时的规则
Python在使用'utf-8'编码写入文件时不会写入BOM头,但是如果指定编码'utf-8-sig'则会迫使Python写入一个BOM头。
使用'utf-16-be'不会写入一个BOM头,但是采用'utf-16'则会写入一个BOM头。
> open('h.txt','w',encoding='utf-8-sig').write('aaa') 3 > open('h.txt','rb').read() b'\xef\xbb\xbfaaa' > open('h.txt','w',encoding='utf-16').write('bbb') 3 > open('h.txt','rb').read() b'\xff\xfeb\x00b\x00b\x00' > open('hh.txt','w',encoding='utf-16-be').write('ccc') 3 > open('hh.txt','rb').read() b'\x00c\x00c\x00c' > open('h.txt','w',encoding='utf-8').write('ddd') 3 > open('h.txt','rb').read() b'ddd'
读取时的规则
如果指定了正确的编码,那么BOM会忽略,否则BOM会显示为乱码或者返回异常。
> open('h.txt','r').read() '锘縟dd' > open('h.txt','r',encoding='utf-8-sig').read() 'ddd'
编码与解码
- chr和ord
> ord('中') #20013 > chr(20013) #'中'
- 把Unicode硬编码进字符串中。
'\xhh':用2位十六进制来表示一个字符
'\uhhhh':用4位十六进制来表示一个字符:
'\Uhhhhhhhh':用8位十六进制来表示一个字符
> s = 'py\x74h\u4e2don' #'pyth中on'
str和bytes, bytearray进行转换
str.encode(encoding='utf-8')
bytes(s,encoding='utf-8')
bytes.decode(encoding='utf-8')
str(B, encoding='utf-8')
bytearray(string, encoding='utf-8')
bytearray(bytes)
文档编码声明
Python默认使用utf-8编码。
# -*- coding: latin-1 -*-
:表示声明文档为latin-1编码。
帮助函数
sys.platform #'win32' sys.getdefaultencoding() # 'utf-8' sys.byteorder #'little' s.isalnum() #s表示字符串 s.isalpha() s.isdecimal s.isdigit() s.isnumeric() s.isprintable() s.isspace() s.isidentifier() #如果字符串可以用作变量名,那么返回True s.islower() s.isupper() s.istitle()
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]