字符串的简单介绍
1、在Python中,只要用引号括起来的数据即为字符串
2、字符串的索引值从0开始
my_str = 'hello' # 输出字符串中索引值为0的字母
print(my_str[0]) -> 输出为h
3、索引值也可以为负数,则表示字符串从后往前取值。负数索引值从-1开始
my_str = 'hello' # 输出字符串中索引值为-1的字母
print(my_str[-1]) -> 输出为o
4、我们可以通过len()函数获取字符串的长度,得到的长度-1即为字符串最后一个字符的索引值
my_str = 'hello'
last = len(my_str)-1
print(my_str[last])
5、切片即为获取字符串中的某一段。具体方法为
变量名 [ 起始下标(默认0): 结束下标(默认取到最后一位): 步长(默认1)]
my_str = 'hello'
word1 = my_str[1:3:2] # 取下标在1-3之间的值,步长为2
print(word1) -> 输出e
word2 = my_str[:3] # 取下标在0-3之间的值,步长为1
print(word2) -> 输出hel
word3 = my_str[::2] # 取整个字符串中的值,步长为2
print(word3) -> 输出hlo
字符串的应用
1、找出字符对应的下标,用.index()函数或.find()函数
这两个函数皆为从前往后(从左往右)找,且当一个字符在字符串中出现一次以上时,函数只返回第一次出现时的下标
my_str = 'hello'
a = my_str.index('e')
b = my_str.find('l')
print(a,b) -> 返回1 2
2、上方介绍的为从左往右找索引,如想用从右往左的方法,即返回该字符在字符串中最后一次出现时的下标,可以使用.rindex()或.rfind()函数。当在函数前面加上r(即right)时,表示方向的变化
my_str = 'have a good day'
a = my_str.rindex('a')
b = my_str.rfind('o')
print(a) -> 返回13
print(b) -> 返回9
3、用.index()和.find()的区别:当字符串中没有所输入的字符时,.index()会报错,而.find()则会返回-1
4、可以用.count()统计字符在字符串中出现的次数
5、可以用.replace()函数替换字符串中的数据,具体为.replace(原字符串内容,新内容,替换的个数)。该函数会返回一个新的字符串
my_str = 'hello'
a = my_str.replace('l','x',1) #将原字符串中的第一个l替换成x
print(a)
6、字符串的分割可以用.split(),括号内可以为空,默认将字符串中由空格分割的字符进行拆分。也可输入用其他在字符串中用于分割的符号,如逗号等。输出的数据类型为列表
my_str = 'hello, world'
a = my_str.split(',')
print(a) -> 输出['hello', ' world']
7、字符串单词首字母大写用.capitalize(),但只是在字符串的第一个单词的首字母大写,其他单词首字母不变
my_str = 'hello, world'
a = my_str.capitalize()
print(a) - > 输出Hello, world
8、若要字符串中所有单词首字母皆大写,用.title()
my_str = 'hello, world'
b = my_str.title()
print(b) -> 输出Hello, World
9、小写转大写用.upper();大写转小写用.lower()
my_str = 'HELLO, world'
a = my_str.upper()
b = my_str.lower()
print(a) -> 输出HELLO, WORLD
print(b) -> 输出hello, world
9、将多行字符串分割用.splitlines()
my_str = '''hello
world
'''
a = my_str.splitlines()
print(a) -> 输出['hello', 'world']
10、去掉字符串首位的空格或其他符号,用.strip(),括号内即填写需要去掉的符号。不填写时,默认去掉空格
my_str = ',,,hello world,,,'
a = my_str.strip(',')
print(a) -> 输出hello world
11、只去掉字符串左侧或右侧的符号,用.lstrip()或.rstrip()
my_str = ',,,hello world,,,'
a = my_str.lstrip(',')
b = my_str.rstrip(',')
print(a) -> 输出 hello world,,,
print(b) -> 输出 ,,,hello world
12、判断字符串是否为数字用.isdigit(),判断字符串是否为字母用.isalpha(),返回值为True或False
但需注意,只有当字符串中只有数字或字母,没有其他符号时,条件判断才会返回True
my_str = 'helloworld'
my_str2 = 'hello world'
a = my_str.isalpha()
b = my_str2.isalpha()
print(a) -> 输出True
print(b) -> 输出False
13、判断字符串是否包含数字或字母,用.isslnum()
需注意,在字符串中仅包含数字或字母时才为True
my_str = 'HELLOworld2'
my_str2 = 'HELLO world 2'
a = my_str.isalnum()
b = my_str2.isalnum()
print(a) -> 输出True
print(b) -> 输出False
14、字符串的遍历用for…in语句获取
15、需要同时获取字符串中的字符和下标时,可用for index, value in enumerate()
my_str = 'hello'
for index, value in enumerate(my_str):
print(index,value)
16、字符串的方法:
用’{}{}’.format(str1, str2),两个大括号中可以为空,那么则和format后括号内的字符串一一对应;也可以在大括号内写上下标,则表示format后括号内的字符串在新拼接成的字符串中的下标
my_str = 'hello'
my_str2 = 'world'
a = '{}{}'.format(my_str, my_str2)
print(a) -> 输出helloworld
在大括号中也可以填写变量名,但在format后的括号内必须将大括号中的变量与其中的字符串进行对应
my_str = 'hello'
my_str2 = 'world'
a = '{a}{b}'.format(a=my_str, b=my_str2)
print(a) -> 输出helloworld
用占位符的方法
my_str = 'hello'
my_str2 = 'world'
result = '%s'%(my_str + my_str2)
print(result)
最简单的,字符串是可以相加的,相加后得出的结果即为拼接后的字符串
17、在字符串的切片中,如果想从后往前取,即起始值、结束值为负数时,步长必须设置为负数
18、由此可以推测,如想输出倒序的字符串,可以用下列方法
my_str = 'hello'
a = my_str[::-1]
print(a) -> 输出olleh