欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python知识之字符串

程序员文章站 2024-01-16 10:52:43
...
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知识