2012-01-18 6 views
0

코드에 문제가 있습니다. 필자는 매개 변수를 추출하고, 원래 문자열을 보내고, 텍스트 조각을 미리/게시하고, 텍스트의 출현 횟수를 전송하는 함수를 작성했습니다. 나는 간단한 코드를 작성하면 그것은 큰 일 :코드가 잘 작동하지만 함수에 오류가 표시됩니다.

searchstr = 'qwer1234asdfqwer5678asdfqwer1234asdfqwer5678asdf' 
startstr = 'qwer' 
endstr = 'asdf' 
occurancenr = 4 
start = searchstr.find(startstr) 
print 'start = ' + str(start) 
while start >= 0 and occurancenr > 1: 
    start = searchstr.find(startstr, start + len(startstr)) 
    occurancenr -= 1 
    print 'start = ' + str(start) + ', and nr = ' + str(occurancenr) 
start = start + len(startstr) 
end = searchstr.index(endstr, start) 
print 'result = ' + searchstr[start:end] 

을하지만 문자열을 반환하는 방법에 넣을 때이 오류가 발생합니다 :

을 Heres 기능 :

def findparam (self, searchstr, startstr, endstr, occurancenr): 
    start = searchstr.find(startstr) 
    while start >= 0 and occurancenr > 1: 
    start = searchstr.find(startstr, start + len(startstr)) 
    occurancenr -= 1 
    start = start + len(startstr) 
    end = searchstr.index(endstr, start) 
    return 'result = ' + searchstr[start:end] 

여기

abc = 'qwer1234asdfqwer5678asdf' 
aa = 'qwer' 
bb = 'asdf' 
print self.findparam(abc, aa, bb, 1) 

오류는 다음과 같습니다 : 그것에 대한 호출은

기술적으로 이것은 분쇄기 스크립트 실행 기능이며 비교기는 자이 썬을 사용하지만 Java 코드가 사용되지 않고 그냥 파이썬 코드이므로이 문제는 파이썬 문제로 간주됩니다. 그러나 여전히, 아마도 이것과 관련이 있습니다.

감사합니다.

+5

그냥주의 -에서 [PEP 8] (http://www.python.org/dev/peps/pep-0008/) : :) – demalexx

답변

2

코드를 들여 쓰기하면됩니다. 다음 작동해야합니다 :

def findparam (self, searchstr, startstr, endstr, occurancenr): 
    start = searchstr.find(startstr) 
    while start >= 0 and occurancenr > 1: 
     ... 
+0

소년 아, 할 "들여 쓰기 수준 당 4 개 개의 공간을 사용" 나는 지금 어리 석다. 감사합니다! – TheBW

0

줄 바꿈하지 않습니다.


def findparam (self, searchstr, startstr, endstr, occurancenr): 
     start = searchstr.find(startstr) 
     while start >= 0 and occurancenr > 1: 
     start = searchstr.find(startstr, start + len(startstr)) 
     occurancenr -= 1 
     start = start + len(startstr) 
     end = searchstr.index(endstr, start) 
     return 'result = ' + searchstr[start:end]