python字符串操作汇总
常用操作
定义字符串
双引号中的字符串与单引号中的字符串的使用完全相同
使用三引号(‘’'或"“”) 利用三引号,你可以指示一个多行的字符串,输出是会以原样格式输出。你可以在三引号中自由的使用单引号和双引号(会被当成普通字符)。
str = '123'
str = "123"
str = """
i am a boy
i am a girl
i am a pig
''你好呀"
"""
索引
str = "123abc"
print(str[0]) # 1
print(str[-1]) # c
切片
str = "123abc"
print(str[2:3]) # 3 左闭右开
print(str[2:]) # 3abc 左闭右闭
print(str[:3]) # 123 左闭右开
print(str[0::2]) # 设置步长为2
查找
str = "123abc"
# 根据 字符/字符串 找索引,找不到返回返回-1
print(str.find("b")) # 4
print(str.find("123")) # 0
print(str.find("d")) # -1
# 根据 字符/字符串 找索引,找不到报错
print(str.index("c")) # 5
print(str.find("23a")) # 1
print(str.index("d")) # 报错:ValueError: substring not found
替换
str = "我是小明,今年3岁,喜欢吃鱼"
print(str.replace("小明", "鸽鸽")) # 我是鸽鸽,今年3岁,喜欢吃鱼
# replace()的第三个参数是替换不超过多少次
print("小明小明小明".replace("小明", "鸽鸽")) # 鸽鸽鸽鸽鸽鸽
print("小明小明小明".replace("小明", "鸽鸽", 2)) # 鸽鸽鸽鸽小明(替换不超过2次)
删除字符串前后的空格/字符
# 删除字符串前后的空格
str = " hello word"
print(str.strip()) # hello word
# 删除字符串前后字符
str2 = "% hello word%"
print(str2.strip("%")) # hello word
print(str2.strip("% ")) # hello word
分隔字符串
str = "my,name,is,zyz"
print(str.split(",")) # 返回列表 ['my', 'name', 'is', 'zyz']
# 默认以空格分隔
with open("新建 文本文档.txt", "r", encoding="utf-8") as f:
for line in f:
a, b, c = line.split()
print(a, b, c)
右侧开始分隔:rsplit()
判断字符串是否包含某字符/字符串
str = "hello world"
res = 'a' in str
print(res) # False
res = 'a' not in str
print(res) # True
res = 'hello' in str
print(res) # True
大小写转换
str = "123abcABC"
# 全部变大写、小写
print(str.upper()) # 123ABCABC
print(str.lower()) # 123abcabc
# 首字母大写
print(str.capitalize()) # 123abcabc
print("abc".capitalize()) # Abc
# 大小写互换
print(str.swapcase()) # 123ABCabc
居中(用空白/其他字符填充)
str = "abc"
print(str.center(10,"*")) # ***abc****
print(str.center(13,"/")) # /////abc/////
print(str.center(13," ")) # abc
计算字符串中某字符/字符串的个数
str = "abcacd"
print(str.count('a')) # 2
print(str.count('ab')) # 1
三种格式化输出format
# 方式一
print("我是{},今年{}岁".format("小明", 3)) # 我是小明,今年3岁
# 方式二
print("我是{0},今年{1}岁,喜欢{2}".format("小明", 3, "吃鱼")) # 我是小明,今年3岁,喜欢吃鱼
print("我是{0},今年{1}岁,喜欢{0}".format("小明", 3, "吃鱼")) # 我是小明,今年3岁,喜欢小明
# 方式三
print("我是{name},今年{age}岁,喜欢{hobby}".format(name="小名", age=3, hobby="吃鱼")) # 我是小名,今年3岁,喜欢吃鱼
is系列
str = "abc123"
# 判断是否都为数字
print(str.isdigit()) # False
# 判断是否都为字母
print(str.isalpha()) # False
# 判断是否都为数字或字母
print(str.isalnum()) # True
print()
# 判断是否都为空格
print("".isspace()) # False
print(" ".isspace()) # True
print("\n".isspace()) # True
print(" n ".isspace()) # False
循环
str = "abc123"
for c in str:
print(c, end=" ") # a b c 1 2 3