问题是我们要编写一个基本上执行find()函数但也处理通配符的函数。由于它是实验室/作业,因此通过Mimir评分时,不允许使用任何库(例如re)。
我采用的方法(也建议使用TA)是在没有通配符的情况下使函数正常工作。到目前为止,这是我尝试过的:
dependencies {
compile project(':projecta')
testCompile project(path: ':projecta', configuration: 'tests')
}
我得到的错误是:UnboundLocalError:赋值之前引用了局部变量'j'。有人可以帮我吗?
答案 0 :(得分:0)
该错误是一个很好的指示。如果文本与第一个字母不匹配,则无需定义j
,而是在下一行使用它。我怀疑您降低了缩进程度:
def findMatch(self, text, start=0):
i = 0
while i < len(text):
if text[i] == self._pattern[0]:
j = 0
while j < len(self._pattern): # Notice this line is indented
if text[i + j] == self._pattern[j]:
j += 1
else:
break
我还应该注意,如果完整单词匹配,您当前不做任何事情。如果整个模式都匹配,则您可能希望返回位置i
(或类似的想法)。