python课堂3: 字符编码 字符串详解
Posted qianduoduo123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python课堂3: 字符编码 字符串详解相关的知识,希望对你有一定的参考价值。
字符编码:
ASCII 码,计算机只能识别二进制,无法识别字符,为了解决计算机处理字符的问题,美国人编写了一个字符和二进制对应的表,就是ASCII 编码表。
每个字符对应一个十进制数,再使用十进制数转换为二进制。基本上所有的英文字符和常用符号使用八个二进制数即256位就可以全部能表示。
为了计算机可以区别出每个字符,强制规定所有字符都由 八个二进制数表示,位数不足的在前面补0。这样为了方便计算把八个二进制数用byte表示。
一个二进制数记为: bit比特,8bit 就是8位二进制,即为1Byte 字节。1024 Byte ----> 1KB千字节 1024KB ----> 1MB兆字节 1024MB --->1GB
1024GB --->1TB
因为ASCII 码没有包含中文,所以中国人按同样的方式编了一套中文编码表,gb2312,中文字符较多,一个字节无法表示完整,所以使用两个字节表示。
由于生僻字,繁体字,日韩等字符的加入,对gb2312进行升级,发展出了GBK。
由于字符集太多,并且兼容性出现问题,ISO国际标准化组织提出了Unicode的新标准,将所有字符全部纳入其中,使用两个字节表示一个字符。
出于成本问题,原来的ASCII码只需要1字节表示一个英文字符,现在需要两个,所以妥协的办法就是使用 UTF-8,英文使用一字节,中文使用三个字节。
现在最常用的字符编码就是 UTF-8。
但是出于中国政府的要求,windows 默认字符集还是 GBK,但是linux 和 mac 默认使用UTF-8.
数据类型
数字 (整形int长整型long浮点数 float)字符串(文本 str 字节 bytes) 布尔(TrueFalse)
列表 元组 字典(有序字典无序字典) 集合(有序集合无序集合)
1、数字
整形 int
长整型 long
浮点数 float(有理数小数,有限小数,无限循环小数)
2、字符串
s = "Qian Lei 123"
# print(s.count(‘i‘)) #计数,返回指定字符在字符串中的个数
# 字符对齐
# print(s.center(20,‘@‘)) #字符串指定长度,并居中,两边填充指定字符
# print(s.ljust(20,‘#‘)) #调整字符串左对齐,指定字符串长度,用指定字符填充。
# print(s.rjust(20,‘#‘)) #调整字符串右对齐,指定字符串长度,用指定字符填充。
# print(s.zfill(10)) #调整字符串右对齐,指定字符串长度,前面填充0
# 大小写转换
# print(s.capitalize()) #首字母大写
# print(s.casefold()) #大写变小写,相比lower()更强大
# print(s.lower()) #大写变小写
# print(s.upper()) #小写变大写
# print(s.swapcase()) #转换大小写格式
# 转换字符串编码
# print(s.encode(‘utf-8‘)) #转换为对应编码形式的二进制。
# 格式化输出
# print(‘aaa {0} aaa {0}‘.format(s)) #格式化输出
# print(s.format_map()) #?看不懂
# 查找下标
# print(s.find(‘ewqewq‘)) #查找指定字符下标,找不到就返回 -1 从左面找,最小下标。
# print(s.rfind(‘dsa‘)) #查找指定字符的下标,找不到就返回 -1 从右面找,最大下标。
# print(s.index(‘ewqe‘)) #查找指定字符下标,找不到报错 从左面找,最小下标。
# print(s.rindex(‘i‘)) ##查找指定字符的下标,找不到就报错 从右面找,最大下标。
# 检查
# print(s.endswith(‘ad‘)) #是否以指定字符结尾
# print(s.startswith()) #是否以指定字符开头。
# 大小写检查
# print(s.islower()) #是否全部为小写
# print(s.isupper()) #是否全部大写
# print(s.istitle()) #开头字母是否为大写
# 字母数字检查
# print(s.isalnum()) #都是字母或数字 True,至少一个字符。
# print(s.isalpha()) #都是字母,True,至少一个字符
# print(s.isdecimal()) #都是数字,True,至少一个字符!!区别
# print(s.isdigit()) #都是数字,True,至少一个字符!!
# print(s.isnumeric()) #是否为数字,True,至少一个字符!!
# print(s.isidentifier()) #是否能作为标识符(变量)。
# print(s.isprintable()) #是否可以打印
# print(s.isspace()) #是否为空格
#字符串中字符替换
# #This static method returns a translation table usable for str.translate().
# mt = str.maketrans({‘q‘:‘@‘})#str的静态方法,为str.translate()生成转换table
# print(s.translate(mt))#调用时传入上面的table.#替换
# print(s.replace(‘a‘,‘@‘))#替换,把字符串中指定字符替换为其他字符。
# print(s.join([‘aaa‘,‘bbb‘,‘ccc‘])) #将字符串插入可迭代类型中。将列表中的元组组成字符串 “”.join([‘this‘,‘is‘,‘qianlei‘])
#截断字符串
# print(s.partition(‘a‘))#根据给出的字符,将字符串截为三段,构成元组。从左面找第一个匹配字符
# print(s.rpartition(‘a‘))#根据给出的字符,将字符串截为三段,构成元组。找右面最后一个匹配字符。
# print(s.rsplit())#默认根据空格截断字符串,还可以指定字符截断。指定字符删除。
# print(s.split(‘a‘))#默认根据空格截断字符串,还可以指定字符截断。指定字符删除。
# print(s.splitlines())#去掉换行符,并且返回由换行符截断的列表。参数给True,保留换行符(
)
#删掉空格或指定字符
# print(s.strip())#删掉左面指定字符,默认去掉空格
# print(s.rstrip(‘q‘))#删掉右面指定字符,默认去掉空格
# print(s.lstrip(‘q‘))#可以删掉左面指定的字符,如果没有指定默认删除空格。
以上是关于python课堂3: 字符编码 字符串详解的主要内容,如果未能解决你的问题,请参考以下文章