""" 在C语言入门的时候字符串没有好好学习,导致后期语言根本没有入门, 更导致之后大量的codeing时间浪费,效率低下。 因此,借助这次Python入门,好好地将字符串这一节学一学,弥补一下。 """
1、字符串基本操作
前边已经说过,所有标准序列操作都适用于字符串,但字符串是不可变的,因此,所有元素的赋值和切片赋值操作都是非法的。
2、设置字符串的格式(完整版)
字符串设置方法很多,在这里主要是调用方法format,并提供要设置其格式的值。
3、字符串方法 center find join lower replace split strip translate is开头的方法
#center 通过在两边添加填充字符(默认为空格)让字符串居中 >>> "The middle by Jimmy Eat World".center(39) ' The middle by Jimmy Eat World ' >>> "The middle by Jimmy Eat World".center(39,"*") '*****The middle by Jimmy Eat World*****' #find 在字符串中寻找子串 ,如果找到,返回子串的第一字符的索引,否则返回-1 >>> sentence="jiameng is a very cool boy"#空格也是字符串的一部分 >>> sentence.find("is") 8 >>> sentence.find("world") -1 >>> sentence.find("cool") 18 >>> sentence.find("cool",0,6)#指定了搜索的起点和终点 -1 #join 非常重要的字符串方法,其作用与split相反,用于合并序列的元素。 #所合并序列的元素都必须是字符串 >>> list1=[1,2,3,4,5] >>> str="+++" >>> list2=['1','2','3','4','5'] >>> str.join(list1) Traceback (most recent call last): File "<pyshell#177>", line 1, in <module> str.join(list1) TypeError: sequence item 0: expected str instance, int found >>> str.join(list2) '1+++2+++3+++4+++5' #lower 返回字符串的小写版本 #可用于检查列表中是否存在某个元素,但又不想区分大小写的时候比较有用 >>> str="The World is Very Beautiful ! @17801231733.COM" >>> str.lower() 'the world is very beautiful ! @17801231733.com' #replace 将指定子串都替换为另一个字符串,并返回替换后的结果。可用于批量查找替换 'the world is very beautiful ! @17801231733.com' >>> str="jiameng is so cool ! I like jiameng!" >>> str.replace("jiameng","beiyou") 'beiyou is so cool ! I like beiyou!' #split 是一个非常重要的字符串方法,作用与join相反,用于将字符串拆分为序列 >>> '1+2+3+4+5'.split("+") ['1', '2', '3', '4', '5'] >>> "C:home/file/homeworks/math".split("/") ['C:home', 'file', 'homeworks', 'math'] >>> "Jiameng is very beautiful !".split()#如果没有指定分隔符,将会在单个或者连续的空白字符(空格、制表符、换行符号等)处进行拆分 ['Jiameng', 'is', 'very', 'beautiful', '!'] #strip 将字符串开头和结尾的空白(不包含中间的空白)删除,并返回删除后的结果 #这个方法也很有用,就像lower一样,如果用户不小心多输入了空格,你仍然能够找到对应的元素 >>> str=" good! good! very good! " >>> str.strip() 'good! good! very good!' >>> str="**** googd! good ** very good! ***" >>> str.strip("*") ' googd! good ** very good! ' #translate 与replace一样替换字符串中的指定部分,但是不同的是,replace只能替换单字符,但是translate可以同时替换多个字符,因此效率比replace高。 #但是使用translate 之前,必须创建一个转换表。这个转换表指出了不同Unicode码点之间的转换关系。
要创建转换表,可对字符串str调用方法maketrans ,这个方法接收两个参数:两个长度相同的字符串,他们指定要将第一个字符串中的字符都替换为第二个字符串中相应位置的字符。 >>> table=str.maketrans("ac","bd"," ")#还可以添加第三个参数,指定要将哪些字母删除 >>> str="aaa ccc OK!" >>> table {97: 98, 99: 100, 32: None}#table 里是Unicode码点之间的映射 >>> str.translate(table) 'bbbdddOK!'
本章新介绍的函数:
函数 | 描述 |
string.capwords(s[ ,sep) | 使用spilt根据sep拆分s,将每一项的首字母大写,再以空格为分隔符将它们合并起来 |
ascii(obj) | 创建指定对象的ASCII表示 |
未完待续......