最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析Python的縮進(jìn)規(guī)則的使用

 更新時間:2019年01月16日 14:31:18   作者:HDWK  
這篇文章主要介紹了解析Python的縮進(jìn)規(guī)則的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Python中的縮進(jìn)(Indentation)決定了代碼的作用域范圍。這一點(diǎn)和傳統(tǒng)的c/c++有很大的不同(傳統(tǒng)的c/c++使用花括號{}符,python使用縮進(jìn)空格)。

每行代碼中開頭的空格數(shù)(whitespace)用于計算該行代碼的縮進(jìn)級別(Indentation level),注意一個Tab等于8個空格(Space),縮進(jìn)級別為0表示無縮進(jìn)空格。

Python中的每一條語句都有一個縮進(jìn)級別,并且縮進(jìn)級別會使用棧的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲。在開始讀取文件之前,0(表示縮進(jìn)級別為0,無縮進(jìn))會被首先壓入棧中。然后從文件開頭到末尾,依次讀取每行邏輯代碼,每行邏輯代碼的縮進(jìn)級別都會和棧頂值進(jìn)行比較,如果相等,那么什么都不會發(fā)生;如果比棧頂值大的話,那么該行邏輯代碼的縮進(jìn)級別就會被壓入棧中,同時會生成一個縮進(jìn)標(biāo)記(INDENT LEVEL);如果比棧頂值小的話,那么棧中所有比該行邏輯代碼縮進(jìn)級別大的值都會從棧中移除,并且還會生成一個擴(kuò)展標(biāo)記(DEDENT LEVEL)。

下面是一個正確的縮進(jìn)案例:

def perm(l):#0
    # Compute the list of all permutations of l
  if len(l) <= 1:# 1
         return [l]# 2
  r = []# 3
  for i in range(len(l)):# 4
       s = l[:i] + l[i+1:]# 5
       p = perm(s)# 6
       for x in p:# 7
       r.append(l[i:i+1] + x)# 8
  return r# 9

上面的#0行,縮進(jìn)0個字符,由于文件讀取之前0已經(jīng)被壓入棧中了,所以棧中的數(shù)據(jù)不會發(fā)生改變。#1縮進(jìn)4個字符,4被壓入棧中。#2縮進(jìn)18個字符,18被壓入棧中。#3縮進(jìn)4個字符,18被彈出棧,棧頂值又為4了。#4和#3縮進(jìn)一樣,所以不更新棧數(shù)據(jù)。#5縮進(jìn)13個字符,所以13被壓入棧中。#5、#6和#7的縮進(jìn)一樣,不更新棧數(shù)據(jù)。#8縮進(jìn)14個字符,14被壓入棧中。#9的縮進(jìn)4個字符,所以棧中的13和14都會彈出,棧頂值又恢復(fù)為4。

下面是一個錯誤的案例

   def perm(l):            #1 error: first line indented
  for i in range(len(l)):       #2 error: not indented
    s = l[:i] + l[i+1:]
      p = perm(l[:i] + l[i+1:])  #3 error: unexpected indent
      for x in p:
          r.append(l[i:i+1] + x)#4
        return r        #5 error: inconsistent dedent

#1、#2和#3處的錯誤解釋的很清楚了。#5的縮進(jìn)級別在棧中找不到所以出錯,#5處的縮進(jìn)級別是14,比它的上面一行縮進(jìn)級別18,所以在#5處應(yīng)該進(jìn)行出棧處理,但是在棧中找不到14這個級別,所以出錯。

又比如:

if True:
  print("hello girl")
else:
  print("hello boy")
 print("end")

最后一行代碼的縮進(jìn)級別是1,而且比上一行代碼的縮進(jìn)級別小,所以應(yīng)該出棧處理,但是在出站的時候找不到棧中以前有1的級別,所以報錯。

要修改的話,只需要將最后一行的空格去掉就可以。

參考文章:https://docs.python.org/2.0/ref/indentation.html

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python元類與迭代器生成器案例詳解

    Python元類與迭代器生成器案例詳解

    這篇文章主要介紹了Python元類與迭代器生成器案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • python wsgiref源碼解析

    python wsgiref源碼解析

    這篇文章主要介紹了python wsgiref源碼的相關(guān)資料,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2021-02-02
  • 一文詳述 Python 中的 property 語法

    一文詳述 Python 中的 property 語法

    這篇文章主要介紹了一文詳述 Python 中的 property 語法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    Python循環(huán)語句之while循環(huán)和for循環(huán)詳解

    在Python中,循環(huán)語句用于重復(fù)執(zhí)行一段代碼,直到滿足某個條件為止,在Python中,有兩種主要的循環(huán)語句:for循環(huán)和while循環(huán),本文就來給大家介紹一下這兩個循環(huán)的用法,需要的朋友可以參考下
    2023-08-08
  • python如何實(shí)現(xiàn)一個刷網(wǎng)頁小程序

    python如何實(shí)現(xiàn)一個刷網(wǎng)頁小程序

    這篇文章主要給大家介紹了關(guān)于利用python如何實(shí)現(xiàn)一個刷網(wǎng)頁小程序的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Pytest框架 conftest.py文件的使用詳解

    Pytest框架 conftest.py文件的使用詳解

    conftest.py是pytest特有的本地測試配置文件,既可以用來設(shè)置項(xiàng)目級別的fixture,也可以用來導(dǎo)入外部插件,本文給大家介紹Pytest框架 conftest.py文件的使用,感興趣的朋友一起看看吧
    2022-06-06
  • Python爬取豆瓣數(shù)據(jù)實(shí)現(xiàn)過程解析

    Python爬取豆瓣數(shù)據(jù)實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Python爬取豆瓣數(shù)據(jù)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Python中BeautifulSoup模塊詳解

    Python中BeautifulSoup模塊詳解

    大家好,本篇文章主要講的是Python中BeautifulSoup模塊詳解,感興趣的同學(xué)趕緊來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python日期與時間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解

    Python日期與時間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解

    這篇文章主要介紹了Python日期與時間模塊(datetime+time+Calendar+dateuil?)相關(guān)使用講解,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • Python 實(shí)現(xiàn)域名解析為ip的方法

    Python 實(shí)現(xiàn)域名解析為ip的方法

    今天小編就為大家分享一篇Python 實(shí)現(xiàn)域名解析為ip的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02

最新評論

乌鲁木齐市| 拜泉县| 通江县| 金山区| 布拖县| 新密市| 手机| 崇文区| 金昌市| 康保县| 株洲市| 灵丘县| 汶上县| 炎陵县| 金川县| 宁南县| 礼泉县| 大兴区| 桃园县| 铁力市| 霍州市| 中超| 泾源县| 禄丰县| 且末县| 衡南县| 额尔古纳市| 太白县| 遵化市| 临洮县| 博客| 长子县| 临沂市| 德州市| 山阴县| 织金县| 曲松县| 长葛市| 黄龙县| 分宜县| 龙泉市|