gpt4 book ai didi

python -- 用于带有 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 07:12:41 24 4
gpt4 key购买 nike

我不明白为什么,当我运行我的代码时,if 语句下的 for each 循环没有运行。即使找到的数量大于 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)

任何帮助将不胜感激,我已经为此苦苦思索了一个小时。

最佳答案

您的 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() 来为您提供一个列表(它是一个可迭代的,而不是迭代器),您可以在其中可以运行 len(group) 来获取大小,然后使用它在您的 for 循环中迭代。

关于python -- 用于带有 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3347693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com