PHP使用ZipArchive批量打包壓縮文件,並下載。使用php自帶的ZipArchive類,可以壓縮或解壓文件。 首先需要確定已經安裝了zip擴展,如果沒有安裝,請先安裝,下載:http://pecl.php.net/package/zip (相應php版本的zip包) 先把需要下載的文件路徑找 ...
【問題】
一個python腳本,本來都運行好好的,然後寫了幾行代碼,而且也都確保每行都對齊了,但是運行的時候,卻出現語法錯誤:
IndentationError: unindent does not match any outer indentation level
【解決過程】
1.對於此錯誤,最常見的原因是,的確沒有對齊。但是我根據錯誤提示的行數,去代碼中看了下,沒啥問題啊。
都是用TAB鍵,對齊好了的,沒有不對齊的行數啊。
2.以為是前面的註釋的內容影響後面的語句的語法了,所以把前面的註釋也刪除了。
結果還是此語法錯誤。
3.後來折騰了半天,突然想到了,把當前python腳本的所有字元都顯示出來看看有沒有啥特殊的字元。
當前用的文本編輯器Notepad++,好像有個設置,可以顯示所有的字元的。
找到了,在:
視圖 -> 顯示符號 -> 顯示空格與製表符
然後就看出問題來了:
原來錯誤的行數是1580行:
但是源碼的1580行的對齊用的是點點點的空格,是和前面的幾行的對齊所用的箭頭表示的TAB鍵,是不匹配的,即代碼的對齊,混用了TAB鍵和空格:
而新的Python語法,是不支持的代碼對齊中,混用TAB和空格的。所以出現上述錯誤提示了。
知道原因了,解決起來就簡單了:
去把對應的TAB,都改為空格,統一一下對齊的風格,即可。
在Notepad++中,去:
設置->首選項:
語言->以空格取代(TAB鍵):
即可實現,對於以後每次的TAB輸入,都自動轉換為4個空格。
【總結】
Python中遇到IndentationError,以後第一時間就要想到,是不是由於TAB鍵和空格混搭使用了。
估計很多人也都是此類原因導致的。記得統一一下就好。
下麵是其他網友的補充
今天在網上copy的一段代碼,代碼很簡單,每行看起來該縮進的都縮進了,運行的時候出現瞭如下錯誤:
【解決過程】
1.對於此錯誤,最常見的原因是,的確沒有縮進。根據錯誤提示的行數,去代碼中看了下,看起來沒有什麼問題呀,都有縮進,而且語法也沒有錯誤呀。
2.仔細研究了下代碼,發現真的看不出什麼問題,突然想到了,把當前python腳本的所有字元(包括空格和tab字元)都顯示出來看看到底有沒有縮進或者是其他特殊的字元。
當前用的文本編輯器Notepad++,有個設置,可以顯示所有的字元的。
在:
視圖 –> 顯示符號 –> 顯示空格與製表符
這樣就可以看到我們Python代碼的到底有沒有該縮進的都縮進了。
最終發現代碼報錯原因還真是出在這裡,錯誤提示的這行看起來是縮進了,實際上確沒有縮進,這就是問題的根源所在。
發現了個問題,發現copy過來的Python代碼都沒有進行縮進,當我們copy別人的代碼時,縮進這點需要額外註意。不要看起來代碼縮進了就感覺ok了,實際上是沒有縮進的。
總結
使用(多行註釋)三個引號的註釋, 一定要註意縮進要與上下文保持一致
即同層次代碼是幾個縮進,就幾個縮進。
報上面這個錯誤的原因是自己在註釋'''test'''前面只有三個空格導致。
同層代碼是4個空格,偏偏要寫8個空格,也會報錯的。
對應的單行註釋##, 則對縮進沒有任何要求。
可能是三個引號是屬於字元串的原因吧
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想瞭解更多相關內容請查看下麵相關鏈接