一、字符串拼接
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 符号(" ")转为空格,tab 符号(" ")默认的空格数是 8
str1 = "hello world!"
print(str1.expandtabs(20)) #制定制表符 的宽度为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 29hello world, Pythonis 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
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"this"str2= u"0728"
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 isstring example
thisis 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 baby girl y"
print(str1.strip("y")) # 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
运行结果:
my lovely baby girl
23、str.lstrip([chars])用于截掉字符串左边的空格或指定字符
str.rstrip([chars])删除 string 字符串末尾的指定字符(默认为空格)
str1 = "ymy lovely baby 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默认为所有的空字符,包括空格、换行( )、制表符( )等)
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=0end=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