码迷,mamicode.com
首页 > 编程语言 > 详细

python课堂3: 字符编码 字符串详解

时间:2018-06-22 23:53:32      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:sprint   返回   中文字符   空格   格式化   join   sci   指定   bytes   

字符编码:
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) 布尔(True\False)

列表 元组 字典(有序字典\无序字典) 集合(有序集合\无序集合)

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,保留换行符(\r \n \r\n)

#删掉空格或指定字符
# print(s.strip())#删掉左面指定字符,默认去掉空格
# print(s.rstrip(‘q‘))#删掉右面指定字符,默认去掉空格
# print(s.lstrip(‘q‘))#可以删掉左面指定的字符,如果没有指定默认删除空格。

 

python课堂3: 字符编码 字符串详解

标签:sprint   返回   中文字符   空格   格式化   join   sci   指定   bytes   

原文地址:https://www.cnblogs.com/qianduoduo123/p/9215688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!