文章目录
前言
一、字符串创建
二、字符串索引
三、字符串方法
(1)大小写转换方法
(2)位置调整方法
(3)删除左右字符
(4)字符判断
总结
前言
字符串在是一种重要的数据类型,它是由一系列字符组成的,并通过引号(单引号或者双引号都可以)括起来。在Python语言中,字符串(str)是Python内置的一个类(class),有很多函数和方法可以进行字符串的处理。当然Python也有专门的字符串处理的外加库RE,本文将只聚焦于Python的内置字符串函数和方法。
一、字符串创建
我们可以用单引号,双引号或者三引号括起来一些字符,就生成了一个字符串。其中三引号括起来的内容可以是多行内容。需要注意的是如果没有引号,那字符会被认为是一个变量。如
>>> 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
总结
以上就是Python字符串的一些介绍,包括了字符串的创建,索引,方法和函数等。Python除了自带的字符串处理方法外,还有专门的字符串处理库RE,后面会进一步介绍。



