python之详解字符串

由字符组成的序列,可以用单引号或双引号括起来。

1、通过下标获取字符串的字符

1.1、获取单个字符

若要获取字符串中某一个字符,可以通过 字符串名[index] 索引下标的方式获取。

索引的初始值为0,最大值为字符串长度-1。

切记,索引值不能超过字符串长度-1,否则会报错。

str1 = "My name is sony"
#获取长度
length_str1 = len(str1)
print(length_str1)
#获取第一个字符
first_index = str1[0]
print(first_index)
#反方向取最后一个字符
last_index = str1[-1]
print(last_index)

字符串的下标可为正,也可为负。并且,符号只是取字符方向的不同,正数从头开始取,负数从尾部开始取。

如:字符串:MyFStr

字符串MyFStr
012345
-6-5-4-3-2-1

1.2、获取多个字符

若要获取一个字符串中的一段字符,可使用切片进行获取。

切片的格式为:[起始位置:结束位置:步长]。且,切片的两个位置是前闭后开:[起始位置, 结束位置)

#切片
str1 = "This is an example"
#获取从2,5的字符串
str2 = str1[2:5:1]
print(str2)
str3 = str1[2:5]
print(str3)
#下标带负数的
str2 = str1[0:-7:]
print(str2)
#步长决定了取值方向
str2 = str1[-1:-7:-1]
print(str2)
str3 = str1[1:7:-1]
str4 = str1[7:1:-1]
print(str3)
print(str4)

起始位置和结束位置可为正,为负。步长的正负决定了取值的方向。取值方向与起始、结束位置有冲突,会导致最终的结果为空。

2、通过Python自带的字符串函数操作字符串

2.1、find和rfind

find:find(substring, start, end)

substring:待查找的子字符串。

start:开始查找的位置。(可选)

end:结束查找的位置。(可选)

结果:子字符串存在,返回第一个子字符串下标索引。子字符串不存之,返回-1。

示例:只输入待查找的子字符串。

str1 = "My name is sony sony"
str2 = "sony"
index_str1 = str1.find(str2)
print(index_str1)

示例:带范围的查找。

#带范围的查找
str1 = "My name is sony sony"
str2 = "sony"
index_str1 = str1.find(str2,14)
print(index_str1)

示例:查找不到。

#查找不到
str1 = "My name is sony sony"
str2 = "lucky"
index_str1 = str1.find(str2)
print(index_str1)

rfind:类似于find,不过是从右向左查找。

示例:查找带有多个子字符串。

str1 = "My name is sony sony"
str2 = "sony"
index_str1 = str1.rfind(str2)
print(index_str1)

2.2、index和rindex

index:类似于find方法。区别在于:当查找不到待查找子字符串时,会报错。

示例:

#index方法
str1 = "My name is sony sony"
str2 = "sony"
index_str1 = str1.index(str2)
print(index_str1)
str2 = "lucky"
index_str1 = str1.index(str2)
print(index_str1)

rindex:类似于rfind。区别:查找不到会报错。

示例:

str1 = "My name is sony sony"
str2 = "sony"
index_str1 = str1.rindex(str2)
print(index_str1)
str2 = "lucky"
index_str1 = str1.rindex(str2)
print(index_str1)

2.3、startswith和endswith

startwith:判断是否以某个子字符串开头,返回值为布尔值。

示例:

str1 = "My name is sony sony"
str2 = "My"
print(str1.startswith(str2))
str2 = "sony"
print(str1.startswith(str2))

endwith:判断是否以某个子字符串结尾,返回值为布尔值。

示例:

str1 = "My name is sony sony"
str2 = "My"
print(str1.endswith(str2))
str2 = "sony"
print(str1.endswith(str2))

2.4、isalpha、isdigit、isalnum和isspace

isalpha:判断字符串是否全是字母。

示例:

str1 = "adadaafafa"
str2 = "12efafsaf"
print(str1.isalpha())
print(str2.isalpha())

isdigit:判断字符串是否全是数字。

示例:

str1 = "adadaafafa"
str2 = "12112414"
print(str1.isdigit())
print(str2.isdigit())

isalnum:判断字符串是否全是字母或数字。

示例:

str1 = "abcd1234"
str2 = "afafaf"
str3 = "1231"
print("1"+str(str1.isalnum()))
print("2"+str(str2.isalnum()))
print("3"+str(str3.isalnum()))

isspace:判断字符串是否全是空格。

示例:

str1 = " "
str2 = ""
str3 = "  12"
print("1"+str(str1.isspace()))
print("2"+str(str2.isspace()))
print("3"+str(str3.isspace()))

2.5、count

count:统计某个子字符串出现次数。

示例:

str1 = "My name is sony sony"
print(str1.count("sony"))

2.6、replace

replace:替换原字符串中的子字符串。

格式:replace(sub,new_sub,max).

sub:待替换子字符串。

new_sub:替换的新字符串。

max:最大替换个数。(可选)

结果:返回一个新字符串。

示例:

str1 = "My name is sony sony"
str2 = str1.replace("sony","new_sony")
str3 = str1.replace("sony","new_sony",1)
print(str2)
print(str3)

2.7、capitalize、title、lower和upper

capitalize:将字符串中的第一个字符大写。

示例:

str1 = "this is a test"
str2 = str1.capitalize()
print(str2)

title:将字符串的每个单词首字母大写。

示例:

str1 = "this is a test"
str2 = str1.title()
print(str2)

lower:将全部字符改为小写。

示例:

str1 = "THIS IS A TEST"
str2 = str1.lower()
print(str2)

upper:全部字符改为大写。

示例:

str1 = "THIS IS A TEST"
str2 = str1.lower()
str3 = str2.upper()
print(str3)

2.8、join方法

join:使用字符串来连接join函数中参数的每一个元素。

结果:返回一个新字符串。

示例:

str1 = "This is an example"
str2 = str1.join("--")
str3 = "--".join(str1)
print(str2)
print(str3)

2.9、split和splitlines

split:以给定的字符分割原字符串。

结果:无论给定的字符存不存在字符串中,都返回一个列表。

示例:

str1 = "Thisisanexample"
list1 = str1.split("is")
list2 = str1.split("hello")
print(list1)
print(list2)

splitlines:按照\n行分割字符串。

结果:返回一个列表。

示例:

str1 = "This\nis\nan\nexample"
str2 = "Thisisanexample"
list1 = str1.splitlines()
list2 = str2.splitlines()
print(list1)
print(list2)

2.10、 partition和rpartition

partition:按照给定的字符,将原字符串分为三部分。

结果:返回一个元组,并且无论有没有给定字符,一定有三部分。

示例:

str1 = "This is an example"
tuple1 = str1.partition("is")
tuple2 = str1.partition("hello")
print(tuple1)
print(tuple2)

2.11、strip、lstrip和rstrip

strip:去掉两边的空格或给定的字符串。

结果:返回一个新字符串。

示例:

str1 = "  This is an example"
str2 = str1.strip()
str3 = str1.strip("le")
print(str1)
print(str2)
print(str3)

lstrip和rstrip:去掉字符串左边和右边空格或给定的字符串。

结果:返回新字符串。

示例:

str1 = "  This is an example  "
print(str1)
print(str1.lstrip())
print(str1.rstrip())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程与实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值