startswith()用于判断字符串是否以指定子串开头,返回true或false;支持单字符串、元组(多前缀)、指定起止位置;区分大小写,空字符串恒为前缀,不支持正则。

startswith() 是 Python 字符串对象的一个内置方法,用来判断字符串是否以指定的子串开头。它返回布尔值 True 或 False,不修改原字符串,使用简单但细节值得注意。
基本用法:检查是否以某个前缀开头
最常见写法是传入一个字符串参数:
-
"hello world".startswith("hello")→True -
"python".startswith("py")→True -
"test".startswith("abc")→False
支持元组:一次检查多个可能的前缀
当需要判断是否以“多个选项中的任意一个”开头时,可传入元组(不能是列表):
-
"image.png".startswith(("img", "image", "pic"))→True -
"data.json".startswith(("txt", "csv", "json"))→False(因为是以 "data" 开头,不是 "json") - 注意:元组里每个元素必须是字符串,否则报
TypeError
指定起始和结束位置:在子串范围内判断
通过 start 和 end 参数,可以限定检查的范围(类似切片):
立即学习“Python免费学习笔记(深入)”;
-
"abcdef".startswith("cd", 2)→True(从索引 2 开始,即子串 "cdef",以 "cd" 开头) -
"hello world".startswith("world", 6, 11)→True(检查索引 6 到 10 的子串 "world") - 索引越界不会报错,会自动截断处理,比如
start超过字符串长度则直接返回False
常见误区与注意事项
几个容易出错的地方要留心:
- 区分大小写:
"Hello".startswith("hello")是False;如需忽略大小写,先统一转成小写再判断 - 空字符串
""是任何字符串的合法前缀:"abc".startswith("")→True - 不能用正则表达式,只支持普通字符串或元组;想做更复杂的匹配,应改用
re.match() - 只查前缀,查后缀请用
endswith(),两者用法几乎一致










