亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> Python

Python 字符串 find() 方法完全指南:语法、参数、替代方案与计数技巧

什么是 Python String.find()?

String.find() 方法返回指定子串在字符串中首次出现的索引。未找到时优雅返回 -1 而非抛异常,是子串搜索的便捷选择。

本指南涵盖 find() 高效用法、参数详解、相关方法对比、甚至统计子串出现次数。

Python string find() 语法

方法签名直观:

string.find(substring, start, end)

参数

使用默认值的 find()

无 start/end 时,find() 从头扫描整字符串。返回首次匹配索引或 -1。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("Tutorials 位置:", mystring.find("Tutorials"))

输出:

Tutorials 位置: 12

指定起始索引

提供 start 限制搜索从该位置开始,直到字符串末尾。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("从索引 20 开始找 Tutorials:", mystring.find("Tutorials", 20))

输出:

从索引 20 开始找 Tutorials: 48

指定起止范围

同时提供 start 和 end 将搜索限制在特定切片。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("索引 5-30 间找 Tutorials:", mystring.find("Tutorials", 5, 30))

输出:

索引 5-30 间找 Tutorials: 12

查找位置与处理缺失子串

find() 子串存在与不存在时的行为:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("Best site 位置:", mystring.find("Best site", 5, 40))
print("Guru99 从索引 20 开始找:", mystring.find("Guru99", 20))

输出:

Best site 位置: 27
Guru99 从索引 20 开始找: -1

对比 rfind()

rfind() 类似 find() 但返回子串出现的最高索引(最后一次)。均未找到返回 -1。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("find()  结果:", mystring.find("Tutorials"))
print("rfind() 结果:", mystring.rfind("Tutorials"))

输出:

find()  结果: 12
rfind() 结果: 48

对比 index()

index() 行为像 find() 但子串缺失时抛 ValueError。

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("find()  结果:", mystring.find("Tutorials"))
print("index() 结果:", mystring.index("Tutorials"))

输出:

find()  结果: 12
index() 结果: 12

子串不存在时:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("find()  结果:", mystring.find("test"))
print("index() 结果:", mystring.index("test"))

输出:

find()  结果: -1
Traceback (most recent call last):
  File "task1.py", line 3, in 
    print("index() 结果:", mystring.index("test"))
ValueError: substring not found

统计子串出现次数

循环调用 find() 并更新起始索引可统计总出现次数。

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for _ in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if k != -1:
        startIndex = k + 1
        count += 1
print("子串 'test' 总出现次数:", count)

输出:

子串 'test' 总出现次数: 6

核心要点

Python

  1. Python strip() 方法完全指南:去除首尾空白与自定义字符实战
  2. Python str.count() 完全指南:统计字符与子串出现次数实战
  3. Python format() 字符串格式化完全指南:占位符、格式化规范、类与字典应用
  4. Python len() 函数实战指南:测量字符串、列表、元组、字典等对象长度
  5. 精通 Python Lambda 函数:实用示例与最佳实践
  6. Python round() 函数详解与实战示例
  7. 精通 Python map() 函数:语法、示例与最佳实践
  8. Python timeit():精准测量代码执行时间与实战示例
  9. 理解 Python type() 与 isinstance():实战示例详解
  10. Java String length() 方法:获取字符串长度(示例)
  11. 精通 Java String.indexOf():定位子字符串与实战示例
  12. Java String.charAt() 详解:语法、返回类型、异常与实战示例