文章目录
目录
前言
一、字符串创建
二、字符串索引
三、字符串方法
(1)大小写转换方法
(2)位置调整方法
(3)删除左右字符
(4)字符判断
(5)字符串拆分和连接
总结
前言
字符串在是一种重要的数据类型,一系列字符组成的内容通过引号(单引号或者双引号或者三引号都可以)括起来就构成了一个字符串。在Python语言中,字符串(str)也是程序内置的一个类(class),它有很多的函数和方法,可以进行字符串的处理,本文将其进行一些介绍。
一、字符串创建
我们可以用单引号,双引号或者三引号括起来一些字符,就生成了一个字符串。其中三引号括起来的内容可以是多行内容。需要注意的是如果没有引号,那字符会被认为是一个变量。如
- >>> str1="abc"#用双引号创建字符串
- >>> print(str1) #str1是一个变量,并不是字符串
- abc
- >>> str2='def'#用单引号创建字符串
- >>> print(str2)
- def
- >>> str3='''abc
- ... def
- ... '''#用三引号创建多行字符串
- >>> print(str3)
- abc
- def
二、字符串索引
字符串的索引和列表类似,此时可以将字符串看成一个列表,每个字符相当于列表的每个元素。可以用str(i)来代表第i个字符,str(i:j)来代表i到j-1的字符串切片,str(i:j:q)来代表i到j-1,step为q的字符串切片,str(-i)代表从右到左的第i个字符(注意最后一个字符i=1,和第一个字符i=0不一样)。字符串的索引例子如下
- >>> str='abcdef123'
- >>> str[1]#第1个字符'b'
- 'b'
- >>> str[-1]#最后一个字符'3'
- '3'
- >>> str[-2]#倒数第二个字符'2'
- '2'
- >>> str[1:4]#第1到3的字符切片'bcd'
- 'bcd'
- >>> str[2:]#第2到最后的字符切片
- 'cdef123'
- >>> str[::2]#step为2的字符切片
- 'ace13'
- >>> str[::-1]#从右到左的字符切片
- '321fedcba'
三、字符串方法
(1)大小写转换方法
Python字符串有以下5种常用的转换大小写的方法:
方法 | 描述 |
capitalize() | 返回新字符串,将整个字符串的首字母大写,其他字母小写 |
title() | 返回新字符串,将单词的首字母大写,其他字母小写,字符串只有1个单词和capitalize()效果一样 |
lower() | 返回新字符串,将所有字符变成小写 |
upper() | 返回新字符串,将所有字符变成大写 |
swapcase() | 返回新字符串,颠倒每个字符的大小写 |
示例如下:
- >>> str='heLLo woRlD'
- >>> str.capitalize()#首字母大写,其他小写
- 'Hello world'
- >>> str.title() #所有单词的首字母大写,其他小写
- 'Hello World'
- >>> str.lower() #所有字母小写
- 'hello world'
- >>> str.upper() #所有字母大写
- 'HELLO WORLD'
- >>> str.swapcase() #颠倒大小写
- 'HEllO WOrLd'
(2)位置调整方法
有时候我们想要字符串居中对齐,或者左右对齐,需要用到以下几种位置调整方法:
方法 | 描述 |
ljust(width,fill_char=” “) | 返回新字符串,字符串左对齐,宽度为width,其余用fill_char(省略了默认为空格)补全 |
rjust(width,fill_char=” “) | 返回新字符串,字符串右对齐,宽度为width,其余用fill_char(省略了默认为空格)补全 |
center(width,fill_char=” “) | 返回新字符串,字符居中对齐,宽度为width,其余用fill_char(省略了默认为空格)补全 |
zfill(width) | f返回新字符串,宽度为width,左边用0补全 |
示例如下:
- >>> str='abcd'
- >>> str.ljust(8) #返回宽度为8的字符串,左对齐,右边默认用空格补全
- 'abcd '
- >>> str.ljust(8,'o') #返回宽度为8的字符串,左对齐,右边用字符'o'补全
- 'abcdoooo'
- >>> str.rjust(8) #返回宽度为8的字符串,右对齐,左边默认用空格补全
- ' abcd'
- >>> str.rjust(8,'o') #返回宽度为8的字符串,右对齐,左边用字符'o'补全
- 'ooooabcd'
- >>> str.center(8) #返回宽度为8的字符串,居中对齐,两边默认用空格补全
- ' abcd '
- >>> str.center(8,'o') #返回宽度为8的字符串,居中对齐,两边用字符'o'补全
- 'ooabcdoo'
- >>> str.zfill(8) #返回宽度为8的字符串,右对齐,左边用0补全
- '0000abcd'
(3)删除左右字符
当我们想要删除字符串的左边或者右边的字符的时候,可以用以下几种方法:
方法 | 描述 |
lstrip() | 返回新字符串,默认移除左边所有空格。当括号内有字符时,则移除左边所有该字符 |
rstrip() | 返回新字符串,默认移除右边所有空格。当括号内有字符时,则移除右边所有该字符 |
strip() | 返回新字符串,默认移除两边所有空格。当括号内有字符时,则移除该字符 |
removeprefix(prefix) | 返回新字符串,移除指定的prefix前缀字符 |
removesuffix(suffix) | 返回新字符串,移除指定的suffix后缀字符 |
例子如下:
- >>> str=' abcd '
- >>> str.lstrip() #移除左边所有空格
- 'abcd '
- >>> str.rstrip() #移除右边所有空格
- ' abcd'
- >>> str.strip() #移除两边所有空格
- 'abcd'
- >>> str='aaabcdeaaa'
- >>> str.lstrip('a') #移除左边所有字符'a'
- 'bcdeaaa'
- >>> str.rstrip('a') #移除右边所有字符'a'
- 'aaabcde'
- >>> str.strip('a') #移除两边所有字符'a'
- 'bcde'
- >>> str.removeprefix('aaa') #移除左边前缀字符'aaa'
- 'bcdeaaa'
- >>> str.removesuffix('aaa') #移除右边前缀字符'aaa'
- 'aaabcde'
注意str.ljust(char)和str.removeprefix(char)的效果可能不一样,当字符串左边有多个char字符时,前者会移除左边所有的char,后者只移除左边第一个char,如
- >>> str='ababdef'
- >>> str.removeprefix('ab') #只移除左边第一个'ab'
- 'abdef'
- >>> str.lstrip('ab') #移除左边所有的'ab'
- 'def'
(4)字符判断
当我们需要判断字符串的字符类型或者字符的内容包含什么时,可以有以下几种方法:
方法 | 描述 |
startswith(char) | 当字符串以char开头时,返回True,否则返回False |
endswith(char) | 当字符串以char结尾时,返回True,否则返回False |
isalpha() | 当字符串是纯字母时,返回True,否则返回False |
isnumeric() | 当字符串是纯数字时,返回True,否则返回False |
isalnum() | 当字符串只有字母和数字时,返回True,否则返回False |
isspace() | 当字符串只有空格时,返回True,否则返回False |
islower() | 当字符串全是小写字母时,返回True,否则返回False |
issuper() | 当字符串全是大写字母时,返回True,否则返回False |
istitle() | 当字符串的单词首字母大写时,返回True,否则返回False |
举例如下:
- >>> str1='12345'
- >>> str2='abcde'
- >>> str3='abc123'
- >>> str1.isnumeric() #str1是'12345',全部是数字所以是True
- True
- >>> str2.isnumeric() #str2是'abcde',不是全部是数字所以是False
- False
- >>> str1.isalpha() #str1是'12345',不是全部是字母所以是False
- False
- >>> str2.isalpha() #str2是'abcde',全部是字母所以是True
- True
- >>> str1.isalnum() #str1是'12345',所以是True
- True
- >>> str2.isalnum() #str2是'abcde',所以是True
- True
- >>> str3.isalnum() #str3是'abc123',全是数字或字母,所以是True
- True
- >>> str1.startswith('123') #str1以123开头,所以是True
- True
- >>> str1.startswith('124') #str1不以124开头,所以是False
- False
- >>> str1.endswith('345') #str1以345结尾,所以是True
- True
- >>> str1.endswith('245') #str1不以245结尾,所以是False
- False
(5)字符串拆分和连接
在写程序时经常需要根据某种规则拆分字符串或者连接字符串,我们可以用以下几种方法:
方法 | 描述 |
split(sep) | 根据分隔符sep来拆分字符串,返回一个列表。当不指定sep时,默认以空格进行拆分。 |
partition(sep) | 根据分隔符sep拆分字符串,返回包含三个元素的元组:(1)分隔符前的内容,(2)分隔符,(3)分隔符后的内容。 |
rpartition(sep) | 根据分隔符sep拆分字符串,从右到左进行寻找分隔符,同样返回包含三个元素的元组:(1)分隔符前的内容,(2)分隔符,(3)分隔符后的内容。 |
join(iterable) |
用字符串将可迭代对象iterable粘连起来,并返回一个新字符串 |
举例如下:
- >>> str='abcDEFabcDEFabc'
- >>> str.split('DEF') #根据'DEF'来分割字符串,返回分割结果的list
- ['abc', 'abc', 'abc']
- >>> str.partition('DEF') #根据'DEF'来从左到右分割字符串,返回元组
- ('abc', 'DEF', 'abcDEFabc') #三个部分:分隔符左边部分,分隔符,右边部分
- >>> str.rpartition('DEF') #根据'DEF'来从右到左分割字符串,返回元组
- ('abcDEFabc', 'DEF', 'abc')
- >>> list=['a','b','c','d']
- >>> '_'.join(list) #用下划线将list连接起来,形成一个字符串
- 'a_b_c_d'
总结
以上就是Python字符串的一些介绍,包括了字符串的创建,索引,方法和函数等。Python除了自带的字符串处理方法外,还有专门的字符串处理库RE,后面会专门写文章进一步介绍,敬请期待!