欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中出現(xiàn)IndentationError:unindent does not match any outer indentation level錯(cuò)誤的解決方法

 更新時(shí)間:2020年04月18日 21:14:44   作者:27Up  
今天在網(wǎng)上copy的一段代碼,代碼很簡(jiǎn)單,每行看起來(lái)該縮進(jìn)的都縮進(jìn)了,運(yùn)行的時(shí)候出現(xiàn)了如下錯(cuò)誤,IndentationError: unindent does not match any outer indentation level,如果看起來(lái)縮進(jìn)正常所有tab與空格混用就會(huì)出現(xiàn)這個(gè)問(wèn)題

【問(wèn)題】 
一個(gè)python腳本,本來(lái)都運(yùn)行好好的,然后寫(xiě)了幾行代碼,而且也都確保每行都對(duì)齊了,但是運(yùn)行的時(shí)候,卻出現(xiàn)語(yǔ)法錯(cuò)誤: 

IndentationError: unindent does not match any outer indentation level

【解決過(guò)程】 

1.對(duì)于此錯(cuò)誤,最常見(jiàn)的原因是,的確沒(méi)有對(duì)齊。但是我根據(jù)錯(cuò)誤提示的行數(shù),去代碼中看了下,沒(méi)啥問(wèn)題啊。 
都是用TAB鍵,對(duì)齊好了的,沒(méi)有不對(duì)齊的行數(shù)啊。 
2.以為是前面的注釋的內(nèi)容影響后面的語(yǔ)句的語(yǔ)法了,所以把前面的注釋也刪除了。 
結(jié)果還是此語(yǔ)法錯(cuò)誤。 
3.后來(lái)折騰了半天,突然想到了,把當(dāng)前python腳本的所有字符都顯示出來(lái)看看有沒(méi)有啥特殊的字符。

當(dāng)前用的文本編輯器Notepad++,好像有個(gè)設(shè)置,可以顯示所有的字符的。 
找到了,在: 
視圖 -> 顯示符號(hào) -> 顯示空格與制表符

notepad 顯示空格與制表符

然后就看出問(wèn)題來(lái)了: 
原來(lái)錯(cuò)誤的行數(shù)是1580行:

python error line

但是源碼的1580行的對(duì)齊用的是點(diǎn)點(diǎn)點(diǎn)的空格,是和前面的幾行的對(duì)齊所用的箭頭表示的TAB鍵,是不匹配的,即代碼的對(duì)齊,混用了TAB鍵和空格:

1580 space and tab mixed
而新的Python語(yǔ)法,是不支持的代碼對(duì)齊中,混用TAB和空格的。所以出現(xiàn)上述錯(cuò)誤提示了。

知道原因了,解決起來(lái)就簡(jiǎn)單了: 
去把對(duì)應(yīng)的TAB,都改為空格,統(tǒng)一一下對(duì)齊的風(fēng)格,即可。 

在Notepad++中,去: 

設(shè)置->首選項(xiàng):

設(shè)置 首選項(xiàng)

語(yǔ)言->以空格取代(TAB鍵):

語(yǔ)言 以空格取代Tab

即可實(shí)現(xiàn),對(duì)于以后每次的TAB輸入,都自動(dòng)轉(zhuǎn)換為4個(gè)空格。

【總結(jié)】

Python中遇到IndentationError,以后第一時(shí)間就要想到,是不是由于TAB鍵和空格混搭使用了。

估計(jì)很多人也都是此類(lèi)原因?qū)е碌?。記得統(tǒng)一一下就好。

下面是其他網(wǎng)友的補(bǔ)充

今天在網(wǎng)上copy的一段代碼,代碼很簡(jiǎn)單,每行看起來(lái)該縮進(jìn)的都縮進(jìn)了,運(yùn)行的時(shí)候出現(xiàn)了如下錯(cuò)誤: 


【解決過(guò)程】 

1.對(duì)于此錯(cuò)誤,最常見(jiàn)的原因是,的確沒(méi)有縮進(jìn)。根據(jù)錯(cuò)誤提示的行數(shù),去代碼中看了下,看起來(lái)沒(méi)有什么問(wèn)題呀,都有縮進(jìn),而且語(yǔ)法也沒(méi)有錯(cuò)誤呀。

2.仔細(xì)研究了下代碼,發(fā)現(xiàn)真的看不出什么問(wèn)題,突然想到了,把當(dāng)前python腳本的所有字符(包括空格和tab字符)都顯示出來(lái)看看到底有沒(méi)有縮進(jìn)或者是其他特殊的字符。

當(dāng)前用的文本編輯器Notepad++,有個(gè)設(shè)置,可以顯示所有的字符的。

在: 

視圖 –> 顯示符號(hào) –> 顯示空格與制表符 

這樣就可以看到我們Python代碼的到底有沒(méi)有該縮進(jìn)的都縮進(jìn)了。

最終發(fā)現(xiàn)代碼報(bào)錯(cuò)原因還真是出在這里,錯(cuò)誤提示的這行看起來(lái)是縮進(jìn)了,實(shí)際上確沒(méi)有縮進(jìn),這就是問(wèn)題的根源所在。

發(fā)現(xiàn)了個(gè)問(wèn)題,發(fā)現(xiàn)copy過(guò)來(lái)的Python代碼都沒(méi)有進(jìn)行縮進(jìn),當(dāng)我們copy別人的代碼時(shí),縮進(jìn)這點(diǎn)需要額外注意。不要看起來(lái)代碼縮進(jìn)了就感覺(jué)ok了,實(shí)際上是沒(méi)有縮進(jìn)的。

總結(jié)

使用(多行注釋?zhuān)┤齻€(gè)引號(hào)的注釋?zhuān)?一定要注意縮進(jìn)要與上下文保持一致

即同層次代碼是幾個(gè)縮進(jìn),就幾個(gè)縮進(jìn)。

報(bào)上面這個(gè)錯(cuò)誤的原因是自己在注釋'''test'''前面只有三個(gè)空格導(dǎo)致。

同層代碼是4個(gè)空格,偏偏要寫(xiě)8個(gè)空格,也會(huì)報(bào)錯(cuò)的。 

對(duì)應(yīng)的單行注釋##, 則對(duì)縮進(jìn)沒(méi)有任何要求。

可能是三個(gè)引號(hào)是屬于字符串的原因吧
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

相關(guān)文章

  • Python?Pandas讀取Excel日期數(shù)據(jù)的異常處理方法

    Python?Pandas讀取Excel日期數(shù)據(jù)的異常處理方法

    Excel文件是傳統(tǒng)的數(shù)據(jù)格式,但面對(duì)海量數(shù)據(jù)時(shí),用編程的方法來(lái)處理數(shù)據(jù)更有優(yōu)勢(shì),下面這篇文章主要給大家介紹了關(guān)于Python?Pandas讀取Excel日期數(shù)據(jù)的異常處理方法,需要的朋友可以參考下
    2022-02-02
  • Python輕松讀寫(xiě)TOML文件實(shí)現(xiàn)示例

    Python輕松讀寫(xiě)TOML文件實(shí)現(xiàn)示例

    這篇文章主要介紹了Python輕松讀寫(xiě)TOML文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • 一文解密Python的弱引用

    一文解密Python的弱引用

    弱引用在很多語(yǔ)言中都存在,最常用來(lái)解決循環(huán)引用問(wèn)題,本文就來(lái)和大家一起探索一下python中的弱引用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-09-09
  • python django 原生sql 獲取數(shù)據(jù)的例子

    python django 原生sql 獲取數(shù)據(jù)的例子

    今天小編就為大家分享一篇python django 原生sql 獲取數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法

    Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法

    隊(duì)、棧和鏈表一樣,在數(shù)據(jù)結(jié)構(gòu)中非常基礎(chǔ)一種數(shù)據(jù)結(jié)構(gòu),同樣他們也有各種各樣、五花八門(mén)的變形和實(shí)現(xiàn)方式。這篇文章主要介紹了Python 實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)-堆棧和隊(duì)列的操作方法,需要的朋友可以參考下
    2019-07-07
  • python實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別

    python實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別

    這篇文章主要介紹了python如何實(shí)現(xiàn)騰訊滑塊驗(yàn)證碼識(shí)別,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-04-04
  • python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法

    python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法

    在本篇文章里小編給大家整理的是關(guān)于python獲取系統(tǒng)內(nèi)存占用信息的實(shí)例方法,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-07-07
  • Github?Copilot結(jié)合python的使用方法詳解

    Github?Copilot結(jié)合python的使用方法詳解

    最近也是聽(tīng)說(shuō)github出了一種最新的插件叫做copilot,于是申請(qǐng)了,下面這篇文章主要給大家介紹了關(guān)于Github?Copilot結(jié)合python使用的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • python中open函數(shù)對(duì)文件處理的使用教程

    python中open函數(shù)對(duì)文件處理的使用教程

    open()函數(shù)的作用是打開(kāi)一個(gè)文件,并返回一個(gè)file對(duì)象(即文件對(duì)象),下面這篇文章主要給大家介紹了關(guān)于python中open函數(shù)對(duì)文件處理的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • python實(shí)戰(zhàn)教程之OCR文字識(shí)別方法匯總

    python實(shí)戰(zhàn)教程之OCR文字識(shí)別方法匯總

    ocr是一種光學(xué)字符識(shí)別技術(shù),簡(jiǎn)單來(lái)說(shuō)它能夠識(shí)別出圖像中的文字并且將其給取出來(lái),下面這篇文章主要給大家介紹了關(guān)于python實(shí)戰(zhàn)教程之OCR文字識(shí)別方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05

最新評(píng)論