練習中的問題記錄(Python核心編程 第3版)

  因爲現在的工作觸及不到Python,所以又lossing了一段時間,Python的知識不用的話也在逐漸的消退當中。。。。。

  爲了更加熟悉和掌握Python

  所以我現在開始主要練習敲代碼

  爲了以後用Python創造世界。fighting!!!

 

 正文部分開始

第一部分:正則表達式

Q1:finditer中的next用法(P21)(已解決)

     在練習這一段代碼時總是出現錯誤,所以在網上面搜索了一下,原來因爲版本的不同適用的語句也不同。所以《Python核心編程 第3版》還是在以Python2.x爲準。作爲一個用Python3.x的人而言,還是慢慢敲代碼,慢慢發現問題,慢慢做改正吧。

     在Python3.x中應該是next(a),而不是a.next()

     所以在《Python核心編程 第3版》中想要代碼運行正確,應該將:

     re.finditer(r'(th\w+) and (th\w+)',s,re.I)).next().groups()

     更改爲:

     next(re.finditer(r'(th\w+) and (th\w+)',s,re.I)).groups()

 

Q2:適用sub() 和 subn()搜索與替換(P22)(未解決)

     這個代碼敲到Python自帶的IDLE環境中就出現跟書中結果不一樣的現象

    我的‘\n’並沒有變成\012,不知道是不是因爲版本的原因。crying,這纔是本書剛開始,我已經能想象之後的場景了,I WANT TO DROP IT。

    但是好多人都在推薦這本書,那我還是繼續吧。

   Python3中sub用法:re.sub(pattern,repl,string,count=0,flags=0)

 

  Q3:在限定模式上使用split()分隔字符串(P23)(已解決)

        

        這個在jupyter notebook敲擊代碼,一直報錯。。。。。我也是不懂了,爲什麼說我的pattern是空值。

         

        之後我又在IDLE中嘗試了一遍,去掉書中DATA數據中最後一個逗號(我覺得書中這個逗號是錯誤的),我運行了一下,發現是可行的,沒有報錯,但是卻不是書中正確的結果。

      實在是找不出原因了,然後我在網上搜索了一下,看到了別人正確的代碼,然後複製在我的代碼中運行,結果是正確的,但是我並沒有找出別人的代碼跟我的代碼的不同點,圖片1是別人的代碼,圖片2是我的代碼。我的運行結果還是不對。。。

然後我又仔細的核對了一遍,居然還是漏了一個空格。這次終於對了。

原來書中是有空格的,我還以爲數據印刷板式原因。還是對代碼不太敏感呀。

Q4:關於^\s(P27)

  運行這段代碼的時候,我出來的結果只有一個,我以爲又是沒有注意那個位置而導致代碼出錯。但是仔細看了一些書中的這個代碼,這個不是規定以^\s爲起始匹配的嗎?所以運行的結果應該只有一個,而書中出現了3個數據,這個應該是去掉^這個纔可能出現的結果。

 

 

   

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章