Python 基本字符串操作

一、字符串拼接

str.join(sequence) 将序列(sequence)中的元素以指定的字符(_)连接生成一个新的字符串

a = '123'
b = 'abc'
c = 'ABC'
str1 = '_'.join([a, b, c])
print(str1)

运行结果:

123_abc_ABC

二、Python自定义方法

1、str.center(width[, fillchar]) 返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格(且只能是单个字符)

str1 = 'hello world!'
str_center = str1.center(50, '-')
print(str_center)

运行结果:

-------------------hello world!-------------------

2、tr.endswith(suffix[, start[, end]]) 用于判断字符串是否以指定后缀(suffix 可以是一个字符串或者是一个元素)结尾,如果以指定后缀结尾返回True,否则返回False。可选参数"start"与"end"为检索字符串的开始与结束位置

str1 = 'hello world!'
print(str1.endswith('ld!')) # 判断str1是否以'ld!'结尾
print(str1.endswith('lo', 2, 5)) # 判断str1中第2位开始到第5位结束的截取字符串('llo')是否以lo结尾

运行结果:

True
True

3、str.startswith(str, beg=0,end=len(string)) 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

str1 = 'hello world!'
print(str1.startswith('hel')) # 判断字符串('hello world!')是否以('hel')开头
print(str1.startswith('llo', 2, 8)) # 判断字符串('llo wo')是否以('llo')开头
print(str1.startswith('llo', 3, 8)) # 判断字符串('lo wor')是否以('llo')开头

运行结果:

True
True
False

4、str.expandtabs(tabsize=8) 把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8

str1 = 'hello\tworld!'
print(str1.expandtabs(20))          # 制定制表符\t的宽度为20

运行结果:

hello               world!

5、str.find(str, beg=0, end=len(string)) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1

str1 = 'hello world!'
print(str1.find('w'))                       # 查找指定的元素('w')的第一个索引值并返回
print(str1.find('g'))                       # 查找的元素不存在返回-1

运行结果:

6
-1

6、str.format() Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

基本语法是通过 {} 和 : 来代替以前的 %;可以接受不限个参数,位置可以不按顺序

str1 = 'hello world, {name} is {age}'
print(str1.format(name='Quincy', age=29))   # 格式化输出
dic1 = {"name": "Python", "age": "15"}
print(str1.format(**dic1))                  # 通过字典设置参数

运行结果:

hello world, Quincy is 29
hello world, Python is 15

7、str.index(str, beg=0, end=len(string)) 检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常

str1 = 'hello world!'
print("'el'在字符串str1中的位置是:%d" % str1.index('el'))

运行结果:

'el'在字符串str1中的位置是:1

查询索引失败报异常:

str1 = 'hello world!'
print(str1.index('gg'))
Traceback (most recent call last):
  File "C:/Python_Learning/PyFullStack/Week2/Day1/String_1.py", line 43, in <module>
    print(str1.index('gg'))
ValueError: substring not found

8、str.isalnum() 检测字符串是否由字母和数字组成

str2 = "abc1234"
str3 = "abc_1234"
print(str2.isalnum())          # 判断是否为字母或数字
print(str3.isalnum())

运行结果:

True
False

9、str.isdecimal() 检查字符串是否只包含十进制字符。这种方法只存在于unicode对象(注意:定义一个十进制字符串,只需要在字符串前添加 'u' 前缀即可),

如果字符串是否只包含十进制字符返回True,否则返回False。

str4 = u"12345"
str5 = u"12345abc"
print(str4.isdecimal())             # 判断是否为十进制数字
print(str5.isdecimal())

运行结果:

True
False

10、str.isalpha() 检测字符串是否只由字母组成,如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

str6 = "PythonIsFun"
str7 = "Python Is Fun"
str8 = "Python3"
print(str6.isalpha()) # 检测字符串是否只由字母组
print(str7.isalpha())
print(str8.isalpha())
print("".isalpha())

运行结果:

True
False
False
False

11、str.isidentifier() 用于判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法,如果字符串是有效的 Python 标识符返回 True,否则返回 False

# 判断字符串是否是有效的 Python 标识符,可用来判断变量名是否合法
print("if".isidentifier())          # True
print("def".isidentifier())         # True
print("class".isidentifier())       # True
print("_a".isidentifier())          # True
print("中国123a".isidentifier())    # True
print("123".isidentifier())         # False
print("3a".isidentifier())          # False
print("".isidentifier())            # False

运行结果:

True
True
True
True
True
False
False
False

12、str.islower() 检测字符串是否由小写字母组成,如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

print('abc'.islower())
print('Abc'.islower())
print('123bc'.islower())

运行结果:

True
False
True

13、str.isupper() 检测字符串中所有的字母是否都为大写,如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False

print('ABC'.isupper())
print('Abc'.isupper())
print('A123'.isupper())

运行结果:

True
False
True

14、str.isspace() 检测字符串是否只由空格组成,如果字符串中只包含空格,则返回 True,否则返回 False

print('    '.isspace())             # 判断字符串是否为空格
print('This is a test'.isspace())   # 判断字符串是否为空格

运行结果:

True
False

15、str.istitle() 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写,如果字符串中所有的单词拼写首字母为大写,且其他字母为小写则返回 True,否则返回 False

str1 = "This Is String Example"
str2 = "This is String example"
print(str1.istitle())              # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写
print(str2.istitle())              # 检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写

运行结果:

True
False

16、str.isnumeric() 检测字符串是否只由数字组成。这种方法是只针对unicode对象(注:定义一个字符串为Unicode,只需要在字符串前添加 'u' 前缀即可)

str1 = u"this2009"
str2 = u"20090728"
print(str1.isnumeric())            # 检测字符串是否只由数字组成。这种方法是只针对unicode对象
print(str2.isnumeric())            # 检测字符串是否只由数字组成。这种方法是只针对unicode对象

运行结果:

False
True

17、str.lower() 转换字符串中所有大写字符为小写

str1 = "THIS IS STRING EXAMPLE"
str2 = "This is String example"
print(str1.lower())
print(str2.lower())

运行结果:

this is string example
this is string example

18、str.upper() 将字符串中的小写字母转为大写字母

str1 = "this is string example"
str2 = "This Is String Example"
print(str1.upper())
print(str2.upper())

运行结果:

THIS IS STRING EXAMPLE
THIS IS STRING EXAMPLE

19、str.swapcase() 用于对字符串的大小写字母进行转换

str1 = "this is string example"
str2 = "This Is String Example"
print(str1.swapcase())          # 大小写反转
print(str2.swapcase())          # 大小写反转

运行结果:

THIS IS STRING EXAMPLE
tHIS iS sTRING eXAMPLE

20、str.ljust(width[, fillchar]) 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串

print('Progress:80% '.ljust(80, '*'))

运行结果:

Progress:80% *******************************************************************

21、str.rjust(width[, fillchar]) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串

print('Progress:80%'.rjust(80, '-')) 

运行结果:

--------------------------------------------------------------------Progress:80%

22、str.strip([chars]) 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列(注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符)

str1 = 'ymy lovely\tbaby girl  y'
print(str1.strip('y')) # 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列

运行结果:

my lovely baby girl 

23、str.lstrip([chars]) 用于截掉字符串左边的空格或指定字符

  str.rstrip([chars]) 删除 string 字符串末尾的指定字符(默认为空格)

str1 = 'ymy lovely\tbaby girl  y'
print(str1.lstrip('y'))                  # 用于截掉字符串左边的空格或指定字符
print(str1.rstrip('y'))                  # 用于截掉字符串末尾的空格或指定字符

运行结果:

my lovely    baby girl  y
ymy lovely    baby girl 

24、str.split(str="", num=string.count(str)) 通过指定分隔符对字符串进行切片,如果参数 num(分割次数。默认为 -1, 即分隔所有)有指定值,则分隔 num+1 个子字符串(str默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等)

str1 = 'Hello, This is a string test.'
print(str1.split())                         # 以默认空格符进行分割
print(str1.split(' ', 2))                   # 以空格符进行分割2+1次
print(str1.split(','))                      # 以制定字符','进行分割

运行结果:

['Hello,', 'This', 'is', 'a', 'string', 'test.']
['Hello,', 'This', 'is a string test.']
['Hello', ' This is a string test.']

25、str.rsplit(str="", num=string.count(str)) 类似于split,区别是从字符串最后面开始分割

str1 = 'Hello, This is a string test, I like Python.'
print(str1.rsplit()) # 以默认空格符从最后面开始进行分割
print(str1.rsplit(' ', 2)) # 以空格符从最后面开始进行分割2+1次
print(str1.rsplit(',', 1)) # 以制定字符','从最后面开始进行分割

运行结果:

['Hello,', 'This', 'is', 'a', 'string', 'test,', 'I', 'like', 'Python.']
['Hello, This is a string test, I', 'like', 'Python.']
['Hello, This is a string test', ' I like Python.']

26、str.rfind(str, beg=0 end=len(string)) 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1

str1 = 'This is a string test'
print(str1.rfind('s'))     # 返回字符串最后一次出现s的位置(从右向左查询),如果没有匹配项则返回-1

运行结果:

19

27、str.title() 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())

str1 = 'this is a string test'
print(str1.title())                   # 字符串首字母大写

运行结果:

This Is A String Test

猜你喜欢

转载自www.cnblogs.com/quinc1201/p/11260349.html