字符串(str)的操作方法

字符串的索引与切片

索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

str = 'ABCDEFGHIJK'
print(str[0])
print(str[5])

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

str = 'ABCDEFGHIJK'
print(str[0:3])
print(str[2:5])
print(str[0:]) #默认到最后
print(str[0:-1]) #-1就是最后一个
print(str[0:5:2]) #加步长
print(str[5:0:-2]) #反向加步长

Python字符串运算符

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操作符 描述 实例
+ 字符串连接 a + b 输出结果: HelloPython
* 重复输出字符串 a*2 输出结果:HelloHello
[] 通过索引获取字符串中字符 a[1] 输出结果 e
[ : ] 截取字符串中的一部分 a[1:4] 输出结果 ell
in 成员运算符 - 如果字符串中包含给定的字符返回 True 'H' in a 输出结果 True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True 'M' not in a 输出结果 True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print( r'\n' )
print( R'\n' )
% 格式字符串  

 字符串方法

序号  
1

capitalize()

将字符串的第一个字母转换为大写

str = 'how do You do!'
str1 = str.capitalize()
print(str1)

输出结果: How do you do!

2

center(width, fillchar)


返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

  • width -- 字符串的总宽度。
  • fillchar -- 填充字符。
str = 'how do You do!'
str1 = str.center(20)
str2 = str.center(20, '*')
print(str1)
print(str2)

输出结果:

    how do You do!    
***how do You do!***

3

count(str, beg= 0,end=len(string))


返回 str 在 string 里面出现的次数,如果 beg 或者 end 指定则返回指定范围内 str 出现的次数

  • sub -- 搜索的子字符串
  • start -- 字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0。
  • end -- 字符串中结束搜索的位置。字符中第一个字符的索引为 0。默认为字符串的最后一个位置。顾头不顾尾 
str = 'how do You do!'
str1 = str.count('o')
str2 = str.count('do')
str3 = str.count('o', 2, 5)
print(str1, str2, str3)

输出结果:4、2和0

4

encode(encoding='UTF-8',errors='strict')


以 encoding 指定的编码格式编码字符串,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'

str = "你好"
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")
print(str)
print("UTF-8 编码:", str_utf8)
print("UTF-8 解码:", str_utf8.decode('UTF-8', 'strict'))
print("GBK 编码:", str_gbk)
print("GBK 解码:", str_gbk.decode('GBK', 'strict'))

输出结果:

你好
UTF-8 编码: b'\xe4\xbd\xa0\xe5\xa5\xbd'
UTF-8 解码: 你好
GBK 编码: b'\xc4\xe3\xba\xc3'
GBK 解码: 你好

4

startswith(str, start =None, end=None)


检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果startend 指定值,则在指定范围内检查。

  • str -- 检测的字符串。
  • start -- 字符串中的开始位置。
  • end -- 字符中结束位置。顾头不顾尾 
str = 'how do You do!'
str1 = str.startswith('h')
str2 = str.startswith('ho')
str3 = str.startswith('o', 1, 7)
print(str1)
print(str2)
print(str3)

 输出结果:

True
True
True

6

endswith(suffix, start =None, end=None)


检查字符串是否以 obj 结束,如果start 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.

  • suffix -- 该参数可以是一个字符串或者是一个元素。
  • start -- 字符串中的开始位置。
  • end -- 字符中结束位置。顾头不顾尾 
str = 'how do You do!'
str1 = str.endswith('!')
str2 = str.endswith('o')
str3 = str.endswith('Y', 0, 7)
print(str1)
print(str2)
print(str3)

 输出结果:

True
False
False

7

expandtabs(tabsize=8)


\t前面的补全

# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。

str = 'how do\t You do!'
str1 = str.expandtabs(20)
print(str1)

 输出结果:how do               You do!

8

find(str, start=None, end=None)


检测 str 是否包含在字符串中,如果指定范围 start 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回-1,如有结果有多个返回的是第一个结果的索引值

  • str -- 指定检索的字符串
  • start -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。顾头不顾尾 
str = 'how do You do!'
str1 = str.find('o')
str2 = str.find('o', 2, 8)
print(str1)
print(str2)

 输出结果:1和5

9

index(str, start=None, end=None)


跟find()方法一样,只不过如果str不在字符串中会报一个异常.

检测 str 是否包含在字符串中,如果指定范围 start 和 end ,则检查是否包含在指定范围内,如果包含返回开始的索引值,否则返回一个异常,如有结果有多个返回的是第一个结果的索引值

  • str -- 指定检索的字符串
  • start -- 开始索引,默认为0。
  • end -- 结束索引,默认为字符串的长度。顾头不顾尾 
str = 'how do You do!'
str1 = str.index('o')
str2 = str.index('o', 2, 8)
print(str1)
print(str2)

输出结果:1和5 

10

isalnum()

只含字母数字则返回 True, 否则返回 False
如果字符串至少有一个字符并且所有字符都是字母或数字则返 回 True,否则返回 False

str = 'how do You do!'
str1 = str.isalnum()
print(str1)

str = 'a123' #不含空格,特殊字符
str2 = str.isalnum()
print(str2)

输出结果:

False
True
 

11

isalpha()

只含字母则返回 True, 否则返回 False
如果字符串至少有一个字符并且所有字符都是字母则返回 True, 否则返回 False

str = 'how do You do123!'
str1 = str.isalpha()
print(str1)

str = 'abc' #纯字母
str2 = str.isalpha()
print(str2)

输出结果:

False
True
 

12

isdigit()


如果字符串只包含数字则返回 True 否则返回 False..

str = 'how do You do123!'
str1 = str.isdigit()
print(str1)

str = '123' #只含数字
str2 = str.isdigit()
print(str2)

输出结果:

False
True
 

13

islower()


如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

字母全为小写则返回 True,否则返回 False

str = 'how do You do!'
str1 = str.islower()
print(str1)

str = 'how do you do!'
str2 = str.islower()
print(str2)

str = 'HOW DO YOU DO!'
str3 = str.islower()
print(str3)

输出结果:

False
True
False
 

14

isnumeric()


如果字符串中只包含数字字符,则返回 True,否则返回 False

str = 'how do You do123!'
str1 = str.isnumeric()
print(str1)

str = '123' #只含数字
str2 = str.isnumeric()
print(str2)

输出结果:

False
True
 

15

isspace()


如果字符串中只包含空白,则返回 True,否则返回 False.

str = ' '
str1 = str.isspace()
print(str1)

输出结果: True 

16

title()

以数字,空格,特殊字符分隔的字母,首字大写,其余字母均为小写
返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写

str = 'how do you do!'
str1 = str.title()
print(str1)

str = '*how0do1you*do!'
str1 = str.title()
print(str1)

 输出结果:

How Do You Do!
*How0Do1You*Do!

17

isupper()

字符串中字母全为大写(可包含数字、特殊符号、空格等字符),则返回 True,否则返回 False
str = 'ABCD #11'
str1 = str.isupper()
print(str1)

输出结果:True 

18

join(seq)


通过指定字符连接序列中元素后生成的新字符串

  • sequence -- 要连接的元素序列。 
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))

输出结果:

r-u-n-o-o-b
runoob 

19

len(string)


返回对象(字符串、列表、元组、字典等)长度或字符个数。空格、特殊字符、汉字、数字都是占1个字符

str = 'ABCD #11'
str1 = len(str)
print(str1)

输出结果: 8

20

ljust(width[, fillchar])


返回一个原字符串左对齐,并使用 fillchar 填充至长度 width 的新字符串,fillchar 默认为空格。

  • width -- 指定字符串长度。
  • fillchar -- 填充字符,默认为空格。
str = 'ABCD'
str1 = str.ljust(20)
str2 = str.ljust(20, '*')
print(str1)
print(str2)

输出结果:

21

lower()


转换字符串中所有大写字符为小写.

str = 'AbcDEfgh'
str1 = str.lower()
print(str1)

输出结果:abcdefgh

22

swapcase()


将字符串中大写转换为小写,小写转换为大写

str = 'AbcDEfgh'
str1 = str.swapcase()
print(str1)

输出结果:aBCdeFGH 

23

upper()


转换字符串中的小写字母为大写

str = 'AbcDEfgh'
str1 = str.upper()
print(str1)

输出结果: ABCDEFGH

24

lstrip(chars=None)


截掉字符串左边的空格或指定字符。

  • chars --指定截取的字符。
str = '  AbcDEfgh  '
str2 = str.lstrip()
print(str2)

str1 = '***AbcDEfgh***'
str3 = str1.lstrip('*')
print(str3)

输出结果: 

AbcDEfgh  
AbcDEfgh*** 

25

max(str)


返回字符串 str 中最大的字母。按ascii码表来比较大小

str = '  AbcDEfgh  '
str1 = max(str)
print(str1)

输出结果:h 

26

min(str)


返回字符串 str 中最小的字母。按ascii码表来比较大小

str = 'AbcDEfgh'
str1 = min(str)
print(str1)

输出结果:A 

27

replace(old, new [, max])


把 将字符串中的 str1 替换成 str2,如果 max 指定,则替换不超过 max 次。

  • old -- 将被替换的子字符串。
  • new -- 新字符串,用于替换old子字符串。
  • max -- 可选字符串, 替换不超过 max 次
str = 'AAAAAAAAAABCDEF'
str1 = str.replace('A', 'b')
str2 = str.replace('A', 'b', 3)
print(str1)
print(str2)

输出结果: 

bbbbbbbbbbBCDEF
bbbAAAAAAABCDEF

28

rfind(str, beg=0,end=len(string))


类似于 find()函数,不过是从右边开始查找.

  • str -- 查找的字符串
  • beg -- 开始查找的位置,默认为0
  • end -- 结束查找位置,默认为字符串的长度。
str = 'AAAAAAAAAABCDEF'
str1 = str.rfind('A')
print(str1)

 输出结果: 9

29

rindex( str, beg=0, end=len(string))


类似于 index(),不过是从右边开始.

str = 'AAAAAAAAAABCDEF'
str1 = str.rindex('A')
print(str1)

输出结果: 9 

30

rjust(width,[, fillchar])


返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串

  • width -- 指定填充指定字符后中字符串的总长度.
  • fillchar -- 填充的字符,默认为空格。
str = 'AAAAAAAAAABCDEF'
str1 = str.rjust(20)
str2 = str.rjust(20, '*')
print(str1)
print(str2)

输出结果: 

      AAAAAAAAAABCDEF
*****AAAAAAAAAABCDEF

31

rstrip()


删除字符串字符串末尾的空格.

str = 'AAAAAAAAA  ABCDEF          '
str1 = str.rstrip()
print(str1)

输出结果:  AAAAAAAAA  ABCDEF

32

split(sep=None, maxsplit=-1)


以什么分割,最终形成一个列表此列表不含有这个分割的元素。默认为空格。

  • (sep -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • maxsplit -- 分割次数。
str = 'how do You do'
str1 = str.split('o', 1)
str2 = str.split()
print(str1)
print(str2)

输出结果: 

['h', 'w do You do']
['how', 'do', 'You', 'do'] 

33

strip([chars])

strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。
在字符串上执行 lstrip()和 rstrip()

  • chars -- 移除字符串头尾指定的字符序列。
str = '   how do You do   '
str1 = str.strip()
print(str1)

str = '****how do You do****'
str2 = str.lstrip('*')
print(str2)

str = '****how do You do****'
str3 = str.rstrip('*')
print(str3)

输出结果: 

how do You do
how do You do****
****how do You do

34

zfill (width)


返回长度为 width 的字符串,原字符串右对齐,前面填充0

  • width -- 指定字符串的长度。原字符串右对齐,前面填充0。

猜你喜欢

转载自blog.csdn.net/qq_41922768/article/details/81905682