使用find功能在线打印行和字符位置

时间:2016-10-31 20:07:47

标签: python python-3.x

我是一个新的编码器,试图弄清楚如何使用find()命令在多行代码中搜索一大块文本,单词或字母。所以如果输入是

  

我喜欢狗。

     

我也有一只狗。

然后我打算打印类似的东西:

  

在第7行的第7行找到了狗

     

狗在第2行发现第9号

到目前为止我已经

chunk = input('Enter chunk: ')
        for line in data.split("\n"):    #data is the block of text to be searched
            for word in line.split():

(不知道在此之后该怎么做)我试过

print(word.find(chunk))

但只输出块出现的最后一个字符。

            if chunk in i:
                print(chunk, 'on line number {} at character {}',x,y)

我知道这是我需要打印的方式,但我不确定如何建立x和y变量。

所有帮助表示感谢,谢谢!

1 个答案:

答案 0 :(得分:4)

如果在字符串中找到子字符串,find将返回其位置。如果不是,则返回-1。以下是使用find

的方法
for j, line in enumerate(data.splitlines()):
    pos = line.find(chunk)
    if pos != -1:
        print('{0} found on line {1} at character {2}'.format(chunk, j, pos))