字符串
现在我们常见的编码格式主要有UTF-8、UTF-16、UTF-32、GB2312、GBK、CP936、base64、CP437等等。
GB2312是我国制定的中文编码,使用1个字节表示英语,2个字节表示中文。
UTF-8对全世界所有国家需要用到的字符进行了编码,以1个字节表示英语字符(兼容ASCII),以3个字节表示中文。
1.现在的python 3.x支持中文字符,默认使用utf8编码格式。
例如: >>>姓名 = '张三' #使用中文作为变量名
>>>print(姓名) #输出变量的值
张三
注意:引号类字符要使用英文字符。
2.在Python中,字符串属于不可变序列类型。
例如:定义一个字符串,我们可以用字符串的下表来表示一个字符,但是不能用下边来改变这个字符(如下图一)。
图一3.Python字符串驻留机制:对于短字符串,将其赋值给多个不同的对象时,内存中只有一个副本,多个对象共享该副本。长字符串不遵守驻留机制。
例如:短字符的内存地址是一样的,长字符的内存地址不一样(这和python的内核实现有关)如图二:
图二字符串格式化
1.常用的格式字符(如图三)
图三
2.使用format方法进行格式化
例如:第一个遍历使用map函数(可迭代的映射:把weather内的映射到formatter中)根据下标分别格式化到相应位置,第二个遍历是直接遍历weather。如下两图:
图四 图五3.python 3.6.x定义的新格式化方式Formatted String Literals
例如:Formatted String Literals,其含义与字符串对象的format()方法类似,但形式更加简洁。直接f ‘xxx’进行格式化。
图六字符串常用方法
1.find()、rfind()、index()、rindex()、count()
find()和rfind方法分别用来查找一个字符串在另一个字符串指定范围(默认是整个字符串)中首次和最后一次出现的位置,如果不存在则返回-1;
index()和rindex()方法用来返回一个字符串在另一个字符串指定范围中首次和最后一次出现的位置,如果不存在则抛出异常;
count()方法用来返回一个字符串在另一个字符串中出现的次数。
例如:
图七2.split()、rsplit()、partition()、rpartition()
split()和rsplit()方法分别用来以指定字符为分隔符,将字符串左端和右端开始将其分割成多个字符串,并返回包含分割结果的列表;
partition()和rpartition()用来以指定字符串为分隔符将原字符串分割为3部分,即分隔符前的字符串、分隔符字符串、分隔符后的字符串,如果指定的分隔符不在原字符串中,则返回原字符串和两个空字符串。
例如:
图八 图九3. 字符串连接join
例如:
图十4.lower()、upper()、capitalize()、title()、swapcase()
lower返回小写字符串
upper返回大写字符串
capitalize字符串首字母大写
title每个单词首字母大写
swapcase大小写互换
例如:
图十一5.查找替换replace()
例如:测试用户输入中是否有敏感词,如果有的话就把敏感词替换为3个星号***
(如图十三)。
图十二 图十三6.maketrans()与translate()
maketrans()方法用来生成字符映射表,translate()方法用来根据映射表中定义的对应关系转换字符串并替换其中的字符,使用这两个方法的组合可以同时处理多个不同的字符,replace()方法则无法满足这一要求。
例如:创建映射表,将字符"abcdef123"一一对应地转换为"uvwxyz@#$"(图十四)。凯撒加密(图十五)。
图十四 图十五7.strip()、rstrip()、lstrip()
strip() 删除字符两边的指定字符
rstrip() 删除字符串右端指定字符
lstrip() 删除字符串左端指定字符
例如:
图十六这三个函数的参数指定的字符串并不作为一个整体对待,而是在原字符串的两侧、右侧、左侧删除参数字符串中包含的所有字符,一层一层地从外往里扒。
图十七8.成员判断,关键字in
测试一个字符中是否存在于另一个字符串中,关键字in左边的字符串作为一个整体对待。
例如:
图十八9.s.startswith(t)、s.endswith(t)
判断字符串是否以指定字符串开始或结束
例如:
图十九实现文件的快速查找功能
网友评论