18. 如何判断一个字符串是否为另一个字符串的子串 find() index() 双层循环完成 ??
时间: 2024-12-06 08:33:47 浏览: 12
输出一个字符串的全部子串.docx
判断一个字符串是否为另一个字符串的子串有多种方法:
1. **`find()` 方法**:这是Python内置的字符串方法,它返回目标子串在原始字符串中首次出现的位置(从0开始计数),如果没有找到则返回-1。你可以通过检查返回值来确定子串是否存在:
```python
str1 = "hello world"
str2 = "world"
if str1.find(str2) != -1:
print("str2是str1的子串")
else:
print("str2不是str1的子串")
```
2. **`index()` 方法**:与 `find()` 类似,但它会抛出异常如果子串不存在,所以在实际使用时要注意处理异常:
```python
try:
index_pos = str1.index(str2)
except ValueError:
print("str2不是str1的子串")
else:
print(f"str2是str1的子串,起始位置为{index_pos}")
```
3. **双层循环**:遍历原始字符串,逐字符对比,这是一种基础方法,适合教学演示,但对于大字符串效率较低:
```python
def is_substring(s1, s2):
for i in range(len(s1)):
if s1[i:i+len(s2)] == s2:
return True
return False
str1 = "hello world"
str2 = "world"
print(is_substring(str1, str2))
```
阅读全文