python——for,带有if语句

python——for,带有if语句,python,jira,Python,Jira,我不明白为什么,当我运行代码时,if语句下的每个循环都没有运行。即使找到的数量大于0 def findpattern(commit_msg): pattern = re.compile("\w\w*-\d\d*") group = pattern.finditer(commit_msg) found = getIterLength(group) print found if found > 0: issues = 0

我不明白为什么,当我运行代码时,if语句下的每个循环都没有运行。即使找到的数量大于0

def findpattern(commit_msg):
    pattern = re.compile("\w\w*-\d\d*")
    group = pattern.finditer(commit_msg)
    found = getIterLength(group)
    print found
    if found > 0:
        issues = 0
        for match in group:
                print " print matched issues:"
                auth = soap.login(jirauser,passwd)

                print match.group(0)
                getIssue(auth,match.group(0))
                issues = issues + 1
    else: 
        sys.exit("No issue patterns found.")

print "Retrieved issues: " + str(issues)  

如果有任何帮助,我将不胜感激,我已经为此绞尽脑汁了一个小时。

检查您的代码格式。如果您有一个双制表符而不是一个单制表符,请记住python对缩进非常挑剔。

检查您的代码格式如果您有一个双制表符而不是一个单制表符,请记住,python对缩进非常挑剔

您的
getIterLength()
函数通过耗尽
finditer()返回的迭代器来查找长度。然后,需要为for循环创建一个新的迭代器实例。相反,我会像这样重新构造您的代码:

def findpattern(commit_msg):
    pattern = re.compile("\w\w*-\d\d*")
    group = pattern.finditer(commit_msg)

    found = 0
    issues = 0
    for match in group:
        print " print matched issues:"
        auth = soap.login(jirauser,passwd)

        print match.group(0)
        getIssue(auth,match.group(0))
        issues = issues + 1
        found += 1
    if found == 0:
        sys.exit("No issue patterns found.")


    print "Retrieved issues: " + str(issues)  
或者,您可以使用
findall()
方法而不是
finditer()
为您提供一个列表(这是一个iterable,不是迭代器),您可以在该列表上运行
len(group)
来获取大小,然后使用它在for循环中进行迭代。

您的
getIterLength()
函数通过耗尽finditer()返回的迭代器来查找长度。然后,需要为for循环创建一个新的迭代器实例。相反,我会像这样重新构造您的代码:

def findpattern(commit_msg):
    pattern = re.compile("\w\w*-\d\d*")
    group = pattern.finditer(commit_msg)

    found = 0
    issues = 0
    for match in group:
        print " print matched issues:"
        auth = soap.login(jirauser,passwd)

        print match.group(0)
        getIssue(auth,match.group(0))
        issues = issues + 1
        found += 1
    if found == 0:
        sys.exit("No issue patterns found.")


    print "Retrieved issues: " + str(issues)  

或者,您可以使用
findall()
方法而不是
finditer()
来给您一个列表(这是一个iterable,而不是迭代器),您可以在其上运行
len(group)
来获得大小,然后使用它在for循环中进行迭代。

您认为
found
是一个数字的原因是什么?我确信found是一个数字。:)getIterLength是什么?你看到了发现的价值是什么?我没问你是否确定。我问你是什么让你认为
found
是一个数字。请提供实际证据证明
found
是一个数字,以便我们大家都能确定。是什么让你认为
found
是一个数字?我确信found是一个数字。:)getIterLength是什么?你看到了发现的价值是什么?我没问你是否确定。我问你是什么让你认为
found
是一个数字。请提供实际证据证明
found
是一个数字,以便我们都能确定。我修复了选项卡。但仍然没有mas。实际上,它并不关心是否在一个块中使用双制表符,在另一个块中使用单制表符。只要在块的中间没有意外地改变缩进级别,它是好的。它对解释器可能不重要,但是Python程序员对缩进更挑剔。但仍然没有mas。实际上,它并不关心是否在一个块中使用双制表符,在另一个块中使用单制表符。只要在块的中间没有意外地改变缩进级别,它是好的。它对解释器可能不重要,但是Python程序员对缩进更挑剔。