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

Python的詞法分析與語(yǔ)法分析

 更新時(shí)間:2013年05月18日 11:59:54   作者:  
這篇文章主要介紹了Python的詞法分析(Lexical Analysis)與 語(yǔ)法分析(Syntactic Analysis),需要的朋友可以參考下
詞法分析(Lexical Analysis):分析由字符組成的單詞是否合法,如果沒(méi)有問(wèn)題的話(huà),則產(chǎn)生一個(gè)單詞流。

語(yǔ)法分析(Syntactic Analysis):分析由單詞組成的句子是否合法,如果沒(méi)有問(wèn)題的話(huà),則產(chǎn)生一個(gè)語(yǔ)法樹(shù)。

在詞法分析器分析源代碼文本的時(shí)候,有一個(gè)概念需要明確:

1.物理行:由回車(chē)字符序列(在Windows上是CR LF,在Unix上是LF)結(jié)尾的字符序列組成一個(gè)物理行。

2.邏輯行:由一個(gè)或者多個(gè)物理行組成,可以明確地使用反斜杠(\)來(lái)連接多個(gè)物理行使之成為一個(gè)邏輯行;或者,處在圓括號(hào),中括號(hào),花括號(hào)內(nèi)的表達(dá)式可以跨越多個(gè)物理行,但是被當(dāng)作一個(gè)邏輯行。

詞法分析器是面向邏輯行的,也就是說(shuō),對(duì)于詞法分析器而言,只有邏輯行才算是一行,它只在邏輯行結(jié)束之處才產(chǎn)生NEWLINE這個(gè)單詞或者說(shuō)token。

對(duì)于每一處縮進(jìn),不管它有多少個(gè)空白字符,詞法分析器只會(huì)產(chǎn)生一個(gè)INDENT單詞或者說(shuō)token,代表縮進(jìn)一級(jí),每當(dāng)要退出一級(jí)縮進(jìn)的時(shí)候,詞法分析器就會(huì)產(chǎn)生一個(gè)DEDENT單詞或者說(shuō)token。注意,單詞DEDENT并沒(méi)有一個(gè)或一組字符與之對(duì)應(yīng),它是完全的邏輯概念。

Python使用稍作修改的BNF(巴科斯范式)來(lái)表示詞法與語(yǔ)法規(guī)則。

下面重點(diǎn)說(shuō)一下需要注意的地方,以避免發(fā)生一些低級(jí)但是隱蔽的編程錯(cuò)誤。

1.標(biāo)識(shí)符是區(qū)分大小寫(xiě)的,但是仍然不要僅僅用大小寫(xiě)不同來(lái)區(qū)分兩個(gè)變量。

2.不要使用那些在其它編程語(yǔ)言中是關(guān)鍵字的標(biāo)識(shí)符作為變量名,因?yàn)樗鼈兒芸赡軙?huì)成為Python的關(guān)鍵字。

3.不要使用Python明確聲明有特殊意義的標(biāo)志符作為變量名(這類(lèi)變量一般以下劃線開(kāi)頭),除非明確自己要使用那個(gè)特殊含義。

4.不要在Python中使用$和?(字符串中除外),它們不是合法的字符。

5.不要混用Tab和空格來(lái)表示縮進(jìn),只使用其中一種,并養(yǎng)成習(xí)慣。

6.整數(shù)字面常量有10,16,8,2幾種表示方法,如果使用16進(jìn)制,請(qǐng)寫(xiě)0xa或者0Xa;如果使用8進(jìn)制,請(qǐng)寫(xiě)0o7或者0O7;如果使用2進(jìn)制,請(qǐng)寫(xiě)0b1或者0B1;總之,不要省略掉那個(gè)標(biāo)識(shí)進(jìn)制的字母,建議只使用小寫(xiě)字母。

7.在整數(shù)字面常量后加一個(gè)l或者L就形成了一個(gè)長(zhǎng)整數(shù),建議只使用L,因?yàn)樾?xiě)l看起來(lái)像數(shù)字1.

8.整數(shù)使用32位表示,但是長(zhǎng)整數(shù)并不限于多少位表示,在內(nèi)存允許的情況下,它可以表示任意大小的整數(shù),這與C語(yǔ)言等是不一樣的。

9.如果一個(gè)整數(shù)字面常量的值超過(guò)32位整數(shù)的表示范圍,那么Python會(huì)自動(dòng)將它升級(jí)為長(zhǎng)整數(shù),但是在早期的Python實(shí)現(xiàn)中可能并非如此,因此如果你預(yù)計(jì)需要一個(gè)很大的整數(shù)值,請(qǐng)明確使用長(zhǎng)整數(shù)。

10.浮點(diǎn)數(shù)字面常量只有10進(jìn)制形式。

相關(guān)文章

  • Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法

    Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法

    這篇文章主要介紹了Django數(shù)據(jù)庫(kù)連接丟失問(wèn)題的解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • Python with標(biāo)簽使用方法解析

    Python with標(biāo)簽使用方法解析

    這篇文章主要介紹了Python with標(biāo)簽使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • python打印9宮格、25宮格等奇數(shù)格 滿(mǎn)足橫豎斜相加和相等

    python打印9宮格、25宮格等奇數(shù)格 滿(mǎn)足橫豎斜相加和相等

    這篇文章主要為大家詳細(xì)介紹了python打印9宮格、25宮格等奇數(shù)格,滿(mǎn)足橫豎斜相加和相等,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • rsa詳解及例題及python算法

    rsa詳解及例題及python算法

    RSA公開(kāi)密鑰密碼體制的原理是:根據(jù)數(shù)論,尋求兩個(gè)大素?cái)?shù)比較簡(jiǎn)單,而將它們的乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開(kāi)作為加密密鑰,這篇文章主要介紹了rsa?詳解及例題及python,需要的朋友可以參考下
    2022-04-04
  • Python使用xlrd和xlwt批量讀寫(xiě)excel文件的示例代碼

    Python使用xlrd和xlwt批量讀寫(xiě)excel文件的示例代碼

    這篇文章主要介紹了Python使用xlrd和xlwt批量讀寫(xiě)excel文件,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • python基礎(chǔ)之Socket套接字詳解

    python基礎(chǔ)之Socket套接字詳解

    這篇文章主要介紹了python基礎(chǔ)之Socket套接字詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python基礎(chǔ)的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • Python實(shí)現(xiàn)線性插值和三次樣條插值的示例代碼

    Python實(shí)現(xiàn)線性插值和三次樣條插值的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)線性插值和三次樣條插值的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Python中的閉包與裝飾器的用法詳解

    Python中的閉包與裝飾器的用法詳解

    這篇文章主要介紹了Python中的閉包與裝飾器的用法詳解,裝飾器本質(zhì)上是一個(gè)Python函數(shù),它可以讓其他函數(shù)在不需要做任何代碼變動(dòng)的前提下增加額外功能,裝飾器的返回值也是一個(gè)函數(shù)對(duì)象,需要的朋友可以參考下
    2023-07-07
  • Python生成8位隨機(jī)字符串的方法分析

    Python生成8位隨機(jī)字符串的方法分析

    這篇文章主要介紹了Python生成8位隨機(jī)字符串的方法,結(jié)合實(shí)例形式對(duì)比分析了2種比較常用的隨機(jī)字符串生成技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python 數(shù)據(jù)可視化pyecharts的使用詳解

    Python 數(shù)據(jù)可視化pyecharts的使用詳解

    這篇文章主要介紹了Python 數(shù)據(jù)可視化pyecharts的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論

肃宁县| 钟祥市| 桂平市| 张家界市| 盐源县| 乌拉特前旗| 广德县| 邯郸市| 余干县| 东至县| 高密市| 太湖县| 砀山县| 舒城县| 肥城市| 济源市| 铅山县| 佳木斯市| 长海县| 南皮县| 疏附县| 凤山市| 宝鸡市| 平罗县| 信阳市| 安丘市| 万荣县| 噶尔县| 盈江县| 石棉县| 嘉善县| 泰兴市| 牟定县| 徐州市| 易门县| 南充市| 南阳市| 镇安县| 桓台县| 永登县| 凌海市|