字符串解析Python

字符串解析Python,python,position,Python,Position,我在其中一本书中遇到了以下代码,这两个代码都产生了下面提到的相同输出。我理解了第二个代码,但是,我无法理解第一个代码,特别是这一行代码,即“if line.find('From:')>=0:”-我的意思是这一行的意思是什么?这是否意味着如果该行大于零,则生成所需的结果,或者它讨论的是长度函数,但如果它的取长函数,那么作者为什么不使用python的len(函数)?为什么既有大于又有平等的象征?如果我使用这行代码,也会得到相同的输出,即“if line.find('From:')==0:”。这一切意

我在其中一本书中遇到了以下代码,这两个代码都产生了下面提到的相同输出。我理解了第二个代码,但是,我无法理解第一个代码,特别是这一行代码,即“
if line.find('From:')>=0:
”-我的意思是这一行的意思是什么?这是否意味着如果该行大于零,则生成所需的结果,或者它讨论的是长度函数,但如果它的取长函数,那么作者为什么不使用python的len(函数)?为什么既有大于又有平等的象征?如果我使用这行代码,也会得到相同的输出,即“
if line.find('From:')==0:
”。这一切意味着什么?有人能帮我理解这一点吗。非常感谢您的帮助

# 1st code
import  re
hand = open('mbox-short.txt')
for line in hand:
    line = line.rstrip()
    if line.find('From:') >= 0: # This is also working ---> if line.find('From:') == 0: (BUT WHY and HOW COME)?
        print(line)

find方法检查正在调用它的字符串是否第一次出现所传递的子字符串

因此,在您的情况下,它检查行中的第一个“From:”it查找行中的s。
如果有结果,则返回事件的最低索引。
但是当没有搜索结果时,find()返回-1。
(见附件)

发件人:斯蒂芬。marquard@uct.ac.za
开头有“From:”,因此结果索引为0

如果line.find('From:')>=0:
检查是否存在任何查找


另一方面,
==0
将检查子字符串“From:”是否位于行的开头

函数find返回给定字符串中搜索字符串的索引,如果未找到要搜索的内容,则返回-1,这就是>=0子句背后的原因。

请查看
# 2nd code
hand = open('mbox-short.txt')
for line in hand:
    line = line.rstrip()
    if line.find('From:'): continue
    print(line)

Output:
From: stephen.marquard@uct.ac.za
From: louis@media.berkeley.edu
From: zqian@umich.edu
From: rjlowe@iupui.edu
From: zqian@umich.edu
From: rjlowe@iupui.edu