问题:编写一个 Python 函数,该函数接受两个字符串作为参数,并返回第一个字符串中包含第二个字符串的所有位置的列表。
答案:
```python
def find_word_positions(text, word):
positions = []
start = 0
while True:
start = text.find(word, start)
if start == -1:
break
positions.append(start)
start += 1
return positions
```
这个函数使用 find() 方法查找字符串中是否包含指定单词,并在找到时将该单词的起始位置添加到一个列表中。它使用一个 while 循环来遍历整个字符串,从而找到所有出现该单词的位置,并将它们存储在一个列表中。如果未找到该单词,则循环将在 find() 方法返回 -1 时终止。您可以使用以下代码测试此函数:
```python
text = "YWhhbmVlZGxlMoL+sQ/gFnZd1rLwKKl1pQ==troZVtFlAtTVCAuWCVMceIsF12weK5nfIj7D/JHVy3OnRyW49hsdbnDUmUeKLelQ5YAxt9cLVZge/gtQEnaPoPOSjzhFtyDv6ercibx/fdnFY40wRpv/pLkwD3WqG7WAHWnabI2EOaIt+Tnlp/mCUTlYzw3eZ7USwhP+9AdRm8Wj+zAsObog7NZTst4FevuMlAQJYCTi3/xCriPGrhIeAanI0tF8KQKp3rkW7rIpekdItlA7xtqcF2Pa4j121Jr704jwweU/kDA=L2FoYW5lZWRsZQ"
word = "=="
positions = find_word_positions(text, word)
print(positions);# 输出:[34,190]
```
在这个示例中,函数找到了两个 "==" 的位置,分别在第 34 个字符和第 190 个字符处。