2012-01-18 72 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] 

但是,當我把它放在返回字符串的方法,我得到錯誤:

繼承人的功能:

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) 

錯誤看起來是這樣的:

SyntaxError: ('invalid syntax', ('C:\\grinder-3.4\\scripts\\ResultCheckMerged.py', 367, 3, ' start = searchstr.find(startstr)')) 
(no code object) at line 0 

從技術上講,這是一個grinder腳本運行的函數,比較器使用jython,但是,由於沒有使用java代碼及其只是python代碼,我認爲這是一個python問題。但是,也許這與此有關。

對此有任何提示讚賞!

+5

只要注意 - 從[PEP 8](http://www.python.org/dev/peps/pep-0008/): 「使用每一級縮進4個空格」 :) – demalexx 2012-01-18 10:20:20

回答

2

您只需要正確縮進代碼即可。下一個應該工作:

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

哦,孩子,做我現在感到很蠢。謝謝你! – TheBW 2012-01-18 10:49:58

0

不縮進def行。


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] 
相關問題