python知识之字符串
1、 字符串的定义
字符串:由单引号、双引号或者三引号包围的字符组
str1 = 'hello' # 单引号定义字符串变量
str2 = "hello" # 双引号定义字符串变量
str3 = """hello
world""" # 三引号定义多行字符串变量
2 、下标和切片
2.1 下标索引(通过下标可取出一个元素)
下标:类似于编号的意思,我们可以根据下标找到它们所对应的元素。
正索引:从左边开始算起,从0开始
负索引:从右边开始算起,从-1开始
name = "hello"
print(name[1]) # 输出第2个元素,即 "e"
print(name[-1]) # 输出右边算起的第一个元素(左边算起最后一个元素),即 "o"
2.2 切片(通过切片可取出多个元素)
切片:对操作的对象截取其中一部分元素,字符串、列表、元组都支持切片操作。
切片的语法:[起始下标:结束下标:步长],输出元素包含起始下标元素,不包含结束下标元素。
name = "hello"
print(name[0:3]) # 输出下标为0-2的元素,即"hel"
print(name[:3]) # 省略起始下标表示从0开始
print(name[1:-1]) # 输出下标为1到-2的元素,即"hell"
print(name[1:]) # 省略结束下标表示取到最后,包含最后一个元素
print(name[0:3:2]) # 输出下标为0-2,步长为2的元素,即"hl"
print(name[::-1]) # 省略起始和结束坐标则表示取所有元素,此表达式可反转整个字符串,输出"olleh"
3、 字符串的常见操作
3.1 find
查找 str1 是否包含在 my_str 中(默认查找整个字符串),如果是,返回查找到的第一个 str1的开始索引值,否则返回 -1。
语法:
my_str.find(str1, start=0, end=len(my_str))
my_str.rfind(str1, start=0, end=len(my_str)) # 从右边开始查找
例子:
my_str = "hello world hello"
my_str.find("llo") # 输出 2,即第一个"llo"中第一个元素"l"的下标索引值
my_str.find("llo", 5, 10) # 输出 -1,在下标5-10的范围内没有找到
3.2 index(注意与find的区别)
查找 str1 是否包含在 my_str 中(默认查找整个字符串),如果是,返回查找到的第一个 str1的开始索引值,否则会报错,抛出异常。
语法:
my_str.index(str1, start=0, end=len(my_str))
my_str.rindex(str1, start=0, end=len(my_str)) # 从右边开始查找
例子:
my_str = "hello world hello"
my_str.index("llo") # 输出 2,即第一个"llo"中第一个元素"l"的下标索引值
my_str.index("llo", 5, 10) # 报错,ValueError: substring not found
3.3 count
统计str1在 my_str 中(默认查找整个字符串)出现的次数,返回出现的次数值
语法:
my_str.count(str1, start=0, end=len(my_str))
例子:
my_str = "hello world hello"
my_str.count("llo") # 输出 2
my_str.count("llo", 5, 10) # 输出 0
3.4 replace
把my_str中的str1替换成str2(默认替换全部str1),如果指定count,则替换不超过count次。
语法:
my_str.replace(str1, str2, my_str.count(str1))
例子:
my_str = "hello world hello"
my_str.replace('hello', 'hey') # 输出 "hey world hey"
my_str.replace('hello', 'hey', 1) # 输出 "hey world hello"
3.5 split
以str1为分隔符切片my_str(默认分隔整个字符串),如果指定maxsplit,则仅分隔maxsplit个子字符串。分隔结果为列表类型数据。
语法:
my_str.split(str1, maxsplit=my_str.count(str1))
例子:
my_str = "hello world hello"
my_str.split('ll') # 输出 ['he', 'o world he', 'o']
my_str.split('ll',maxsplit=1) # 输出 ['he', 'o world hello']
3.6 capitalize
把字符串 my_str 的第一个字符大写
my_str = "hello world hello"
my_str.capitalize() # 输出 'Hello world hello'
3.7 title
把字符串 my_str 的每个单词的首字母大写
my_str = "hello world hello"
my_str.title() # 输出 'Hello World Hello'
3.8 upper
把字符串 my_str 的所有字符大写
my_str = "hello world hello"
my_str.upper() # 输出 'HELLO WORLD HELLO'
3.9 lower
把字符串 my_str 的所有字符小写
my_str = "Hello World hello"
my_str.lower() # 输出 'hello world hello'
3.10 startswith
检查字符串 my_str 是否以 指定字符串str1 开头,是则返回True,否则返回False
my_str = "hello world hello"
my_str.startswith("hello") # 输出 True
my_str.startswith("Hello") # 输出 Fasle
3.11 endswith
检查字符串 my_str 是否以 指定字符串str1 结束,是则返回True,否则返回False
my_str = "hello world hello"
my_str.endswith("hello") # 输出 True
my_str.endswith("Hello") # 输出 Fasle
3.12 center
返回一个原字符串居中,并使用空格填充至指定长度的新字符串
my_str = "Hello"
my_str.center(10) # 输出 ' Hello '
my_str.ljust(10) # 原字符串左对齐,输出 'Hello '
my_str.rjust(10) # 原字符串右对齐,输出 ' Hello'
3.13 strip
删除my_str左右两边的空白字符、换行符"\n"、制表符"\t"等
my_str = " \n \t Hello \n \t"
my_str.strip() # 输出 'Hello'
my_str.lstrip() # 删除左边,输出 'Hello \n \t'
my_str.rstrip() # 删除右边,输出 ' \n \t Hello'
3.14 partition
把my_str以指定str1分割成三部分,str1前,str1, str1后
my_str = "hello world hello"
my_str.partition("ll") # 输出 ('he', 'll', 'o world hello')
my_str.rpartition("ll") # 从右边开始,输出 ('hello world he', 'll', 'o')
3.15 join
将序列中的元素以指定的字符连接构造出一个新的字符串
my_str = ("h","e","l","l","o"," ","w","o","r","l","d") # 字符串序列
"-".join(my_str) # 输出 'h-e-l-l-o- -w-o-r-l-d'
"".join(my_str) # 输出 'hello world'
上一篇: 获取对象信息(廖雪峰)
下一篇: Python字符串处理