原創 學習 Python 程式設計的三種困境

2021-09-25 17:32:22 字數 2247 閱讀 5857

我理解辦不到的原因,因為我全部都親身感受過,現在我把最突出的幾個困境彙總了一下,我們來分別聊一聊。

學過 python 的同學,肯定都學習過列表、元組,如果是通過菜鳥教程學習的話,肯定都學習過列表和元組的訪問、修改和刪除操作。

不知道有多少人還記得第一次看這部分內容的感覺,反正我的感覺是「很簡單嘛,和想象中差不多」,那幾個操作已經很熟悉了。

舉例這個已經是最簡單的部分了,類似的我還在多個元素拼接上吭哧過半天,才發現元組必須和元組型別進行拼接,不然也是報錯。

如果需要兩個元組拼接後不是合成乙個元組,而是形成乙個新的複合型元組,那就更要糾結一會了。

看完我上面說的是不是覺得很簡單,請動手寫一寫,或者回憶下自己當初是怎麼解決這些問題的。

古人云「看書如流水,編碼如便秘」,甚是。

建議解決方案:多動手實操練習,真的能熟能生巧噢。

我之前很多的指令碼都是 python2.6 寫的,因為 py2 已經不更新了,所以我正嘗試逐步改為 py3。

有一次我拿乙個簡單的指令碼試試效果,指令碼功能很簡單,就是把乙個 pe 檔案內容使用文字方式讀取出來,然後暴力搜尋其中是否存在某指定字串,並得出搜尋結果。

py2 讀取檔案內容的寫法是:

def test_readfile2(filepath):

"""讀取檔案內容

args:

filepath:目標檔案全路徑

returns:

context:讀取到的檔案內容

"""with open(filepath, 'r') as obj:

context = obj.read()

return context

同樣的寫法,在 py3 中執行會報錯:

unicodedecodeerror:

'gbk' codec can't decode byte 0x90

in position 2

: illegal multibyte sequence

根據之前弱弱的經驗,一看也知道是編碼的問題,但是我反覆的 encode 或者 decode,都是無濟於事。

明明知道是很簡單的問題,但就是搞不定,那種無奈,實在是很無奈。

一次偶然的機會,終於知道了解法,方法果然很簡單:

def

test_readfile3

(filepath)

:"""讀取檔案內容

args:

filepath:目標檔案全路徑

returns:

context:讀取到的檔案內容

"""with

open

(filepath,

'r', errors=

'ignore'

)as obj:

context = obj.read(

)return context

僅僅是加了乙個引數 errors,一切都搞定了,是不是有種豁然開朗的感覺。

建議解決方案:只有自己親自踩過的坑才是真的坑,一定要多動手實操練習,了解每一種變通的可能

用 python 寫 gui 的同學,應該有部分是使用的 wxpython 這個庫,反正我是用的這個。

如果只是寫個主介面,大家都會定義乙個主視窗類,比如 mainclass 之類的,其他控制項也可以按教程一步步操作實現。

有次我需要在主介面之外加乙個設定視窗,同時設定項更新後,主介面要立刻響應。

這個響應函式我是寫到主視窗的類裡面的,搞了半天,我就是不知道怎麼在子視窗類中呼叫父視窗類裡面的方法,網上也搜了很久,就是沒找到有類似的問題以及解決方案。

明明知道是很簡單的問題,但就是搞不定,那種無奈,實在是很無奈。

後來仔細看了網上的一些實現的例子,發現可以在父視窗類中把 self 作為引數傳遞給子視窗,子視窗再通過這個 self 來進行父視窗類中方法的呼叫,完美解決。

同樣的回過頭看看解決方法,真的是很簡單,而且也確實給人豁然開朗的感覺,但這又明明就是乙個稍微高階了一下的基本用法而已。

不動手時不知道自己有多弱,上手後才追悔莫及。

建議解決方案:多動手實操練習,每乙個遇到的問題,都是自我高階的階梯

當然,如果你認可我的觀點,請幫忙** + 點個「在看」讓更多人看到,謝謝。

三種程式設計正規化

命令式是關於 how to do 的,告訴計算機每乙個步驟如何執行 宣告式是關於 what to do 的,不關心實現的具體步驟,只告訴想要的結果,由計算機 底層程式 決定如何做 how to do 比如說,我們呼叫乙個介面,只關心介面需要的輸入引數,和輸出的結果,對於其具體實現,並不關心 比如sq...

九,程式設計的三種結構

其實只懂了前面講的那些內容還是無法實現c語言的強大功能,除了變數和輸入輸出,還需要程式的結構來控制,這是屬於c語言語法的內容。程式語言有三種結構 順序結構,分支結構,迴圈結構。順序結構不用多說,就是一句一句的寫。前面講過的都是順序結構。下面主要講一下後面兩個。一,分支結構。想象這樣乙個問題,如果我不...

三 python中的三種機制

和大多數變成語言一樣 此處略 if else if elif elif else 注意 後面的冒號和其他程式語言的不同點 例子1 剪刀石頭布遊戲 import random player int input 請輸入數字 0 剪刀 1 石頭 2 布 computer random.randint 0,...