2012-10-02 106 views
0

傍晚,Python語法白色空間

這不一定是pythonic,我知道進入它。但是,我無法完全觸發這一點。

我試圖做的是匹配兩個字母的項目,其中得到正確執行「寄存」,但是我隨後想看看是否有這兩個字母后的空白。白色空間是沒有得到正確的選擇。我敢肯定,我只是在搞清楚sytax。任何幫助將不勝感激。

registers = ['R0','R1','R2','R3','R4','R5','R6','R7'] 
whiteSpace = ['\t', ' '] 
if (item[idx +2] + item[idx +3]) in registers and (item[idx +4] in whiteSpace): 
+0

你或許應該看看pyparsing ......假設你正試圖使某種語法 –

+0

您是否收到錯誤? –

+0

沒有錯誤。我的測試用例不能正常工作。還要注意我不能使用任何字符串幫助器類或爲此提供。 – Miscue

回答

1

很難告訴你做錯了什麼,沒有看到什麼item是一個例子或爲什麼你通過它加強與索引指針。如果它只是一個字符串,如你所說,你可以測試減少到以下幾點:

if item[:2] in registers and item[-1] in whiteSpace: 

你需要保證產品3個字符長,或把另一個後衛的條件。

順便說一句,我喜歡用命名爲片這樣的事情,使意圖更加明顯:

code = slice(0, 2) 
spacer = slice(-1) 

if item[code] in registers and item[spacer] in whiteSpace: