30、字符串常见内建函数

小白量化 2025-12-09 16:06:02 41 举报

1、字符串常见内建函数
参考网站(电脑端才能打开):https://www.cainiaojc.com/python/python-methods-string.html

1.1 查找元素
(1) find(子串, 起始索引, 结束索引):查找子串在字符串中首次出现的索引位置。如果没有找到,就返回-1。

# 示例
name = "xiaobai"
# 基本使用
print(name.find("x"))    # 0
print(name.find("ba"))  # 4
print(name.find("bb"))   # -1(不存在)
# 使用start参数
print(name.find("b", 3))   # 4
# 使用start和end参数,遵循包前不包后规则,即包含起始位置,不包含结束位置,会在结束位置的前一位结束
print(name.find("b", 1, 4))   # -1(不存在)

(2) index(子串, 起始索引, 结束索引):查找子串在字符串中首次出现的索引位置。如果没有找到,则抛出异常ValueError。

# 示例
name = "xiaobai"
# 基本使用
# print(name.index("n"))    # ValueError: substring not found(不存在)
print(name.index("i"))  # 1
print(name.index("b"))   # 4
# 使用start参数
print(name.index("b", 3))   # 4
# 使用start和end参数,遵循包前不包后规则,即包含起始位置,不包含结束位置,会在结束位置的前一位结束
print(name.index("b", 1, 4))   # ValueError: substring not found(不存在)

(3) count(子串, 起始索引, 结束索引):统计子串在字符串中出现的次数。如果子串在字符串中不存在,则返回0。

# 示例
name = "lianghua"
# 基本使用
print(name.count("a"))   # 2
print(name.count("bb"))    # 0
# 使用start参数
print(name.count("h", 1))   # 1
# 使用start和end参数,遵循包前不包后规则,即包含起始位置,不包含结束位置,会在结束位置的前一位结束
print(name.count("b", 1, 4))  # 0

1.2 修改元素
(1) replace(旧子串, 新子串, 替换最大次数):替换字符串中的某些部分。

# 示例
st = "hello, xiaobai! hello world!"
# 基本使用
print(st.replace("hello", "hi"))
print(st.replace(" ", "##"))     # 没有指定替换次数,则默认全部替换
print(st.replace(" ", "##", 1))   # 指定替换次数,就按照指定次数替换

(2) split(分割符, 最大分割次数):将字符串分割成列表中的子串。默认情况下,会根据任意空白字符(如空格、换行符\n、制表符\t等)来分割字符串,也可以通过指定一个分割符来改变分割行为。

# 示例
st = "hello, xiaobai!\tn n\nhello world!"

# 使用默认分割符(空白字符)
print(st.split())    # 'hello,', 'xiaobai!', 'n', 'n', 'hello', 'world!'

# 使用sep参数指定分割符
print(st.split(" "))   # 'hello,', 'xiaobai!\tn', 'n\nhello', 'world!'

# 指定一个不存在的分割符,则不会进行分割,而是将整个字符串作为一个整体返回
print(st.split("@"))   # 'hello, xiaobai!\tn n\nhello world!'

# 使用sep和maxsplit参数
print(st.split(" ", 1))    #  'hello,', 'xiaobai!\tn n\nhello world!'   只分割1次

(3)strip(字符集合):去除字符串首尾的指定字符(默认情况下是去除空白字符,包括空格、换行符、制表符等)

# 示例1
st = "    hello world        \n    \t           "
# 去除首尾空白字符
print(st.strip()) # hello world
# 示例2
st = "xxxyyxxhello worldxxxxyyyyxxxx"
# 去除首尾指定的字符
print(st.strip("x"))  # yyxxhello worldxxxxyyyy
print(st.strip("xy")) # hello world

(4)lower():将字符串中的所有大写字母转换为小写字母
(5)upper():将字符串中的所有小写字母转换为大写字母

# 示例
st = "Python 3.13"
print(st.lower())
print(st.upper())

1.3 判断元素
(1) startswith(前缀, 起始索引, 结束索引):检查字符串是否以指定的前缀开始。如果是则返回True,否则返回False。
(2)endswith(后缀, 起始索引, 结束索引):检查字符串是否以指定的后缀结束。如果是则返回True,否则返回False。

# 示例
st = "Hello!"
# 基本使用
print(st.startswith("H"))
print(st.startswith("He"))
print(st.startswith('o'))    # False

print(st.endswith("!"))
print(st.endswith("o!"))
print(st.endswith("H"))    # False

# 使用start 参数
print(st.startswith("l", 2))   # True

# 使用 start 和 end 参数,遵循包前不包后规则,即包含起始位置,不包含结束位置,会在结束位置的前一位结束
print(st.endswith("!", 2, 5))   # False

(3)isupper():检查字符串中的所有可识别的字母字符是否都是大写。如果字符串中至少有一个可识别的字母字符,并且所有这些字母字符都是大写,则返回True;如果字符串为空,不包含任何字母字符,或者包含至少一个小写字母字符,则返回False。
(4)islower():检查字符串中的所有可识别的字母字符是否都是小写。如果字符串中至少有一个可识别的字母字符,并且所有这些字母字符都是小写,则返回True;如果字符串为空,不包含任何字母字符,或者包含至少一个大写字母字符,则返回False。

# 示例
print("ABCD".isupper())
print("abde".islower())

print("ABde".isupper())   # False
print("abDE".islower())

print(" ".isupper())

print("PYTHON 3.8".isupper())   # True

print("1234".isdigit())    # isdigit():判断是否都是数字字符
print("12.34".isdigit())    # False 小数点不属于数字字符


量化小白,从0开始学量化! 1

著作权归文章作者所有。 未经作者允许禁止转载!

最新回复 ( 0 )
发新帖
0