當前位置:首頁 » 編程語言 » python基礎學習心得

python基礎學習心得

發布時間: 2022-12-18 01:38:35

『壹』 心得分享!python面試都要做哪些准備

首先,准備好簡歷。找工作,最開始競爭的是什麼?最開始競爭的是簡歷。你到任何一家公司應聘,第一件要做的事情就是投簡歷,簡歷是應聘公司了解你的第一窗口,也是應聘公司了解你的第一途徑。一份好的簡歷可以讓你在眾多的簡歷中脫穎而出,給招聘者留下深刻印象,然後決定給你面試通知,它是幫助你成功面試的敲門磚。

其次,對於Python常見面試問題要有了解。在面試前我們一定要通過各種渠道了解Python面試中常見的面試問題,做到心中有數。在Python的面試中,一些Python基本常識問題,有些面試官還是會考察的,如果你連基本的常識問題都回答不上來,那麼你後面的面試可能無法進行下去,如果能勉強進行下去,最後面試的成功率也會降低。

最後,在面試前准備一套大方得體的服裝。穿著得體表現的是對面試的尊重。穿著得體,會給面試官一種愉悅的心情。相反,如果你穿著比較邋遢,當面試官看到你的時候,會覺得你不注意細節,有的面試官甚至會懷疑你的工作能力,這樣會給面試官留下非常不好的印象,也可能最後導致面試的失敗。

如果在面試前你做好充足的准備,面試官會覺得你是一個對於工作認真、態度真誠的一個人,會增加心裡認同感,也會增加面試的成功率。

關於心得分享!Python面試都要做哪些准備,環球青藤小編就和大家分享到這里了,學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚。如果您還想繼續了解關於python編程的學習方法及素材等內容,可以點擊本站其他文章學習。

『貳』 Python自學心得分享

學習python,我首先根據自己完全代碼零基礎的情況下,為什麼學習Python作為核心問題,進行了一個自我定位以及目標定位,我認為只要有一個目標,那麼就找方法去打成目標就行了。

我是完全零基礎,選擇學習Python主要還是因為看到大家都說Python是相對簡單,比較好入門IT行業的,而我的目的也是希望學習完Python可以找到一份相應的工作,賺取一份工資可以買口紅,哈哈哈哈哈哈哈哈哈哈~

當然,也有很多人可能已經從事其他編程工作,但是想要學習Python以來豐富自身,提升自身的核心競爭力,我覺得這樣應該會比我這類完全零基礎的學習要容易快速的很多,

我就只說下我這位完全零基礎是如何學習的吧

我也搜查了一些學習方法的問答帖子,裡面也看到很多推薦的學習方法,有推薦書籍的,有推薦網課的,我開始認為,看書應該是比較好的選擇,因為著作成書籍,表明內容上是相對有一定的權威和系統的,同時,想到從小都是書本學習,這更能讓我信服,於是我就購買了書籍,開始了我的學習計劃,可是,在半強迫自己的情況下,我看了三天半書籍實在是看不下去了,是的,三天半還是強迫自己看的,原因一,看書真的太乏味了,看著看著就會心不在焉,總是走神。原因二,這個時候我對代碼沒有概念,有些文字都要讀兩三遍才會理解意思,越難理解就越不想看書,這種感覺就是上學時我看數學,英語書一模一樣的感覺。很顯然,看書學習是不適合我了,

看書不行,於是我就想著還是找網上的視頻教程學習吧,上網一搜,真的是各家機構的教程也是琳琅滿目,還真的讓我不知道從哪開始學起了,

這個時候真的是想有一位前輩可以給我指點一下迷津,告訴我應該先學什麼,再學什麼,哪些是重點知識,哪些是了解就好,就是可以給我一些學習的建議,於是我想那我可以先加入一些技術學習交流群,在裡面應該可以認識到一些學習的人,於是我就開始大量的搜索加入學習群,於是在裡面開始咨詢學習方法,

但是,這個時候我又發現,我好像一張白紙,我想問一些問題,可是我不知道該怎麼問,我也只能問大家都是怎麼學習的,群內的朋友也都還很熱情,也和我說了很多學習方式,不過我發現每個人都有各自的學習方式,各自都有各自的理論和優勢,在那麼多的方法面前我再一次的有些混亂,又不知道哪一方法適合我,於是,我想到千人千面,每個人有每個人的想法,我咨詢的人越多,獲取的信息越多可能我就會越亂,於是我決定,那我就要借鑒看到的這些信息,來整理一套自己的方式,不一定對,但是可能這更適合我自己。

於是,我並沒有先著急的就找教程視頻來直接學習,我現在想知道的就是,應該先學什麼,掌握哪些知識之後,再學什麼,我覺得我應該先整理一套相對看上去系統的教程,雖然我最希望可以找到一個人給我一些這類的指引,但是奈何沒有找到,那就只能自己去整理了,我根據我買的書籍目錄,以及查了一些培訓機構的學科介紹,教程大綱內容,進行了一個統計對比,發現其實學習的內容路徑也還是有它一定的規律,那我就整理了一份知識點的目錄學習路徑,我按照我整理的這個學習路徑上的知識點目錄去查找對應的教程,這樣就整理了一套自己的學習資料,整理學習路徑和教程,利用了我比較多得時間,不過整理好了那麼就可以開始學習了。

但在查找教程的時候,又走了一些彎路,我當時只想到只要按照我整理的這個目錄找到對應的教程就好了,可是在學習的時候,還是覺得知識點之間的銜接有些雜亂無章,

而且每一個知識點都是不同機構課程風格不同的教程視頻,這讓我學上去有些別扭,而且有的老師講得我很喜歡聽,有的就不是很喜歡,於是,我就又想,那我就找我喜歡這個老師的課程就好啦,可是我找了兩三天,同一個老師的教程是非常難找到公開的全套教程,這個我想也可以理解,老師也可能沒時間和精力來從零開始錄制全套教程,而且老師也是要工作賺錢養家生活的,於是我想那我可以找同一個機構的教程吧,這樣也能最起碼是課程風格一致,於是我就找到了我我認為課程比較好得教程機構,又將我的學習資料重新的整理替換了一下,果然我覺得學習感覺好了一些,而且我又找到他們的客服,要到了他們課程的一些配套資料,這對我學習來說起到了更加的有效幫助。

最後,在學習完我整理的學習知識教程之後,又遇到了一個瓶頸,就是學習完知識點內容,掌握的也是七七八八,之後又不知道該怎麼做了,不知道自己學習的有沒有達到可以找工作的條件,

於是我又查詢了一些資料,可一些招聘信息,了解的一些信息主要要求說是需要項目經驗,需要一些項目功能技術的掌握,那我的理解就是,已經掌握了基礎知識,企業招聘人員需要掌握一些項目技術能力,

去幫助解決處理問題,也就好像,假設Python有100個技術框架,但是一個企業只用到其中30個,那如果你的學習掌握正是他們用的這30個,那麼你不會那另外的70個也可以,只不過你學習掌握的越多,你的條件符合范圍和就業機會也就越大,我按照我的這個大致理解,

我就仔細了解了一下Python主要可以從事哪些方向,我就根據我比較喜歡的方向看了一下招聘信息,然後根據上面的普遍要求,進行了學習。最後就整理包裝了一下簡歷,嘗試著投簡歷找工作,當然面試也並不是順利,剛開始的面試是還慌亂,面試也是沒有任何結果,不過我是在每次面試中總結經驗,收集好面試問題,回來在好好准備,為下一次面試做知識儲備,就這樣我面了試大概有將近二十家,終於也是找到了一個算是實習崗位的工作,我想著先做著,這個時候應該先到企業中去學習一些真實的項目經歷比較重要。

最後我總結一下我學習過程中我認為比較重點的內容

首先,學習我們要有一個清楚的自我認識,是為了找工作,還是為了輔助工作來增加自己的競爭力,也就是要有一個明確的目標。 如果是完全零基礎學習,我建議開始不要先看書,原因上面我也有說了,這個時候看書完全看不進去,裡面的知識點也很難理解的,雖然我們從小就接受書本教育,可是前提也都是要有老師講解的,不是我們自己看書就可以的。

然後,就是要尋找一套適合自己的學習方式,最好還是自己整理一套適合自己的學習資料,因為只有自己最了解自己,這里可能會花費比較長的時間,但是這會讓你在之後的學習上節省很多時間,讓你事半功倍。

最後,如果在選擇視頻教程的時候,盡量選擇一個老師的教程(但是很難實現)最差也要盡量選擇同一家機構的教程,因為這樣在課程設計和課程風格上相對比較統一。然後在學習的過程中,最好是根據視頻課程老師的進度,自己做學習筆記,這樣的好處,一是,在今天學習完,明天你可能就只記得一個大致概念了,俗話說,好記性不如爛筆頭,做筆記會讓自己印象更深刻,二是,在之後你想要回頭復習的時候,也會讓你有一個清晰的復習思路。當學習完一個階段知識的時候,感覺視頻老師講解的內容有些淺,這時候可以看一些優秀的書籍,因為你覺得老師講得淺,說明你的學習理解的非常好,這時候看一些書可以起到很大的提升作用。

至於找工作面試的事情我就不詳細地寫了,手敲了這么多,有點累了,最後希望我的建議可以對想要學習的夥伴有一點點幫助吧。

『叄』 初學python,感受和C的不同

從開始看Python到現在也有半個多月了,前後看了Python核心編程和Dive into
Python兩本書。話說半個月看兩本,是個人都知道有多囫圇吞棗,這也是因為我暫時沒有需求拿這個做大型開發,主要是平時的小程序test用一用。所以

我的策略是,整體瀏覽,用到時候現查。話說這核心編程第一版太古老了,老在講2.2之前的東西,我看的翻譯電子版,翻譯得也不好,很晦澀。看完這個後還有
點雲里霧里,看網上人家說DIP好,啄木鳥還有免費電子文檔,就找來看這個。怎麼說呢,講的比核心編程好,但不適合第一次看的初學者。我之所以覺得講得
好,是因為看核心編程,有些概念還有些模糊,看了這本書就明白不少了。要是初學者上來就看這本,保證不好理解。

下面就是在學習的過程中,在翻閱資料的過程中,總結的一些C和python比較明顯的不同之處,有大方向的,也有細節的。肯定沒有總結完,比如動態

函數,lambda這些,我都懶得往上寫了。實際上,作為兩種完全不同的語言,下面這些差異只是冰山一角而已。權當拋磚引玉吧,至少應該對和我有相同研究

興趣,正在考慮是否學習另一門語言的朋友有點幫助。此文也算是DIP的學習筆記吧。順帶說一句,要是有朋友了解,可以幫忙推薦一下實戰性強的Python
教材,語言這東西,不多練手,光比劃,是不可能學好的。

學習目的

我的以後的研究方向是嵌入式,顯然,c語言是我的主要語言。我不是一個語言愛好者,我以前覺得,對於做研究而不是應用的人來說,了解多門語言,不如

精通一門語言。之所以去看python,主要還是因為python更有利於快速開發一些程序,也是因為現在認識到,研究和應用是不能分離的。個人以為,要
想在計算機工程的競爭中立足,必須懂C語言。因為真正要做高性能編程,
不可能將機器的體系架構拋到腦後讓Python虛擬機(或Java虛擬機等)幫你搞定所有底層。越來越多的CPU
core,越來越恐怖的內存性能瓶頸,對於上層開發人員來說,無所謂,但是對高性能程序開發人員來說,這些是無法透明的。很多應用,還是自己掌控比較有
效。這些場合中,匯編和C還是不可替代的。但是,光知道C是不夠的,掌握一門面向對象語言,相對更高層的語言,不僅對以後的個人發展有利,也會對自己的技
術認識產生幫助。

如果要問對我來說誰更重要,我覺得還是C更重要。C的學習曲線更陡,貌似簡單,實際上到處都是陷阱,看上去比較簡單低效的程序,也不是學1,2個月

就能搞定的。談到優化的深層次和難度嘛,需要的功底是按年算的。但是一旦你C語言的基礎打好了,對計算機的理解,對其他語言的理解都是大有裨益的。比如,

如果你有C基礎,可以說,學過1天python,就能寫的出來一些不短的程序。後面的優化也不是什麼大不了的演算法,都是非常基本的語句換來換去。當然這里
不是說 Python不好,實際上,上層應用,Python比C方便的不是一個層次。

很多人覺得,既然懂C了,那麼進一步掌握C++應該是水到渠成,但C++不是C的超集,而我又不喜歡C++的繁瑣和巨大,所以才決定看一看Python。我很喜歡Python的優雅與快捷。

語言類型

和C不一樣,Python是一種動態類型語言,又是強類型語言。這個分類怎麼理解呢?大概是可以按照下列說明來分類的:

靜態類型語言

一種在編譯期間就確定數據類型的語言。大多數靜態類型語言是通過要求在使用任一變數之前聲明其數據類型來保證這一點的。Java和 C 是靜態類型語言。

動態類型語言

一種在運行期間才去確定數據類型的語言,與靜態類型相反。Python 是動態類型的,因為它們確定一個變數的類型是在您第一次給它賦值的時候。

強類型語言

一種總是強制類型定義的語言。Java 和 Python 是強制類型定義的。您有一個整數,如果不明確地進行轉換 ,不能將把它當成一個字元串。

弱類型語言

一種類型可以被忽略的語言,與強類型相反。VBScript 是弱類型的。在 VBScript 中,您可以將字元串 『12′ 和整數 3 進行連接得到字元串』123′,然後可以把它看成整數 123 ,所有這些都不需要任何的顯示轉換。

對象機制

具體怎麼來理解這個「動態確定變數類型」,就要從Python的Object對象機制說起了。Objects(以下稱對象)是Python對於數據

的抽象,Python中所有的數據,都是由對象或者對象之間的關系表示的,函數是對象,字元串是對象,每個東西都是對象的概念。每一個對象都有三種屬性:

實體,類型和值。理解實體是理解對象中很重要的一步,實體一旦被創建,那麼就一直不會改變,也不會被顯式摧毀,同時通常意義來講,決定對象所支持的操作方

式的類型(type,包括number,string,tuple及其他)也不會改變,改變的只可能是它的值。如果要找一個具體點的說明,實體就相當於對

象在內存中的地址,是本質存在。而類型和值都只是實體的外在呈現。然後Python提供一些介面讓使用者和對象交互,比如id()函數用來獲得對象實體的
整形表示(實際在這里就是地址),type()函數獲取其類型。

這個object機制,就是c所不具備的,主要體現在下面幾點:

1 剛才說了,c是一個靜態類型語言,我們可以定義int a, char
b等等,但必須是在源代碼裡面事先規定。比如我們可以在Python裡面任意一處直接規定a =
「lk」,這樣,a的類型就是string,這是在其賦值的時候才決定的,我們無須在代碼中明確寫出。而在C裡面,我們必須顯式規定char *a =
「lk」,也就是人工事先規定好a的類型

2 由於在C中,沒有對象這個概念,只有「數據的表示」,比如說,如果有兩個int變數a和b,我們想比較大小,可以用a ==
b來判斷,但是如果是兩個字元串變數a和b,我們就不得不用strcmp來比較了,因為此時,a和b本質上是指向字元串的指針,如果直接還是用==比較,
那比較的實際是指針中存儲的值——地址。

在Java中呢,我們通過使用 str1 == str2 可以確定兩個字元串變數是否指向同一塊物理內存位置,這叫做「對象同一性」。在 Java 中要比較兩個字元串值,你要使用 str1.equals(str2)。

然後在Python中,和前兩者都不一樣,由於對象的引入,我們可以用「is」這個運算符來比較兩個對象的實體,和具體對象的type就沒有關系
了,比如你的對象是tuple也好,string也好,甚至class也好,都可以用」is」來比較,本質上就是「對象同一性」的比較,和Java中
的==類似,和 C中的pointer比較類似。Python中也有==比較,這個就是值比較了。

3
由於對象機制的引入,讓Python的使用非常靈活,比如我們可以用自省方法來查看內存中以對象形式存在的其它模塊和函數,獲取它們的信息,並對它們進行
操作。用這種方法,你可以定義沒有名稱的函數,不按函數聲明的參數順序調用函數,甚至引用事先並不知道名稱的函數。 這些操作在C中都是不可想像的。

4 還有一個很有意思的細節,就是類型對對象行為的影響是各方面的,比如說,a = 1; b =
1這個語句中,在Python裡面引發的,可能是a,b同時指向一個值為1的對象,也可能是分別指向兩個值為1的對象。而例如這個語句,c = []; d
= [],那麼c和d是肯定指向不同的,新創建的空list的。沒完,如果是」c = d =
[]「這個語句呢?此時,c和d又指向了相同的list對象了。這些區別,都是在c中沒有的。

最後,我們來說說為什麼python慢。主要原因就是function call
overhead比較大。因為所有東西現在都是對象了,contruct 和destroy 花費也大。連1 + 1 都是 function
call,像』12′+』45′ 這樣的要 create a third string object, then calls the string
obj』s __add。可想而知,速度如何能快起來?

列表和數組

分析Python中的list和C中的數組總是很有趣的。相信可能一些朋友和一樣,初學列表的時候,都是把它當作是數組來學的。最初對於list和數組區別的定性,主要是集中在兩點。首先,list可以包含很多不同的數據類型,比如

["this", 1, "is", "an", "array"]

這個List,如果放在C中,其實是一個字元串數組,相當於二維的了。

其次呢,list有很多方法,其本身就是一個對象,這個和C的單純數組是不同的。對於List的操作很多樣,因為有方法也有重載的運算符。也帶來一些問題,比如下面這個例子:

加入我們要產生一個多維列表,用下面這個語句

A = [[None] * 2] * 3

結果,A的值會是

[[None, None], [None, None], [None, None]]

初一看沒問題,典型的二維數組形式的列表。好,現在我們想修改第一個None的值,用語句

A[0][0] = 5

現在我們再來看看A的值:

[[5, None], [5, None], [5, None]]

發現問題沒有?這是因為用 * 來復制時,只是創建了對這個對象的引用,而不是真正的創建了它。 *3 創建了一個包含三個引用的列表,這三個引用都指向同一個長度為2的列表。其中一個行的改變會顯示在所有行中,這當然不是你想要的。解決方法當然有,我們這樣來創建

A = [None]*3
for i in range(3):
A[i] = [None] * 2

這樣創建了一個包含三個不同的長度為2的列表。

所以,還是一直強調的,越復雜的東西,越靈活,也越容易出錯。

代碼優化

C是一個很簡單的語言,當我們考慮優化的時候,通常想得也很簡單,比如系統級調用越少越好(緩沖區機制),消除循環的低效率和不必要的系統引用,等
等,其實主要都是基於系統和硬體細節考慮的。而Python就完全不一樣了,當然上面說的這些優化形式,對於Python仍然是實用的,但由於
Python的語法形式千差萬別,庫和模塊多種多樣,所以對於語言本身而言,就有很多值得注意的優化要點,舉幾個例子吧。

比如我們有一個list L1,想要構建一個新的list L2,L2包括L1的頭4個元素。按照最直接的想法,代碼應該是

L2 = []
for i in range[3]:
L2.append(L1[i])

而更加優化和優美的版本是

L2 = L1[:3]

再比如,如果s1..s7是大字元串(10K+),那麼join([s1,s2,s3,s4,s5,s6,s7])就會比
s1+s2+s3+s4+s5+s6+s7快得多,因為後者會計算很多次子表達式,而join()則在一次過程中完成所有的復制。還有,對於字元串操作,
對字元串對象使用replace()方法。僅當在沒有固定字元串模式時才使用正則表達式。

所以說,以優化為評判標准,如果說C是短小精悍,Python就是博大精深。

include和import

在C語言中的include非常簡單,因為形式單一,意義明確,當你需要用到外部函數等資源時,就用include。而Python中有一個相似的
機制,就是import。乍一看,這兩個傢伙挺像的,不都是我們要用外部資源(最常見的就是函數或者模塊(Python))時就用這個來指明么?其實不

然,兩者的處理機制本質區別在於,C中的include是用於告訴預處理器,這個include指定的文件的內容,你都給我當作在本地源文件中出現過。而

import呢,不是簡單的將後面的內容*直接*插入到本地裡面去,這玩意更加靈活。事實上,幾乎所有類似的機制,Python都比C靈活。這里不是說C
不好,C很簡練,我其實更喜歡C。

簡單說說這個靈活性。import在python中有三種形式,import X, from X import *( or a,b,c……),
X = __import__(』x')。最常用的是第二種,因為比較方便,不像第一種那樣老是用X.mole來調用模塊。from X
import *只是import那些public的mole(一般都是不以__命名的模塊),也可以指定a,b,c來import。

什麼時候用哪一種形式呢?應該說,在大多數的模塊文檔里,都會明確告訴你應該用哪種形式。如果需要用到很多對象,那麼from X import
*可能更合適一些,但是,就目前來看,大多數第三方Python庫都不推薦使用from molename import *
這種格式。這樣做會使引入者的namespace混亂。很多人甚至對於那些專門設計用於這種模式的模塊(包括Tkinter,
threading和matplot)都不採用這種方式。而如果你僅僅需要某個對象類a,那麼用from X import a比用import
X.a更好,因為以後你調用a的函數直接用a.function()既可以了,不用加X。

如果你連自己希望import的模塊都不知道怎麼辦?請注意,此時Python的優勢就體現出來了,我們可以用
__import__(mole)來調用mole,其中這個mole是字元串,這樣,可以在運行時再決定,你到底要調用什麼mole。舉
個例子:

def classFromMole (mole, Name):
mod = __import__ (mole)
return getattr (mod, Name)

這里,定義了一個函數classFromMole,你可以在代碼的任何時候調用它,

o = classFromMole (MoleOfTheClass, NameOfTheAttribute)()

只需要傳入字元串形式的你希望import的模塊MoleOfTheClass和其中屬性的名字NameOfTheAttribute(當然可以是數據也可以是方法),就能調用了,這個名字字元串不用事先指定,而是根據當時運行的情況來判斷。

順帶說一句,Python中import的順序也有默認規定,這個和C中的include有點類似,因為我們一般都是先include系統文件,再
include自己的頭文件(而且還有<>和「」的區別)。Python中呢,一般應該按照以下順序import模塊:

1. 標准庫模塊 — 如 sys, os, getopt 等

2. 第三方模塊

3. 本地實現的模塊。

全局變數

這里談全局變數呢,倒不是說Python和c的全局變數概念不同,他們的概念是相同的。只是在使用機制上,是有一些差異的。舉個例子:

– mole.py –
globalvar = 1

def func():
print globalvar
# This makes someglobal readonly,
# any attempt to write to someglobal
# would create a new local variable.

def func2():
global globalvar
globalvar = 2
# this allows you to manipulate the global
# variable

在 func這個函數中,globalvar是只讀的。如果你使用了globalvar =
xxx這種賦值語句,Python會重新創造一個新的本地對象並將新值賦給它,原來的對象值不變。而在func2函數中,由於我們事先申明了
globalvar是global的,那麼此時的更改就直接在全局變數上生效。

『肆』 Pytho怎樣自學

我是真正零基礎開始學Python的,從一開始的一竅不通,到3個月後成功搭建了一個動態網站(沒有用任何框架)。相比於計算機大牛,我更加知道一個小白將會遇到什麼坑,遇到哪些難點。我把我的學習過程寫在下面,並附上在每個階段的學習資料,希望對零基礎的Python學習者有所幫助。

sql書籍:Sams Teach Yourself MySQL in 21 Days

Python:Python核心編程(第二版)

Github上的優質Python資源:CodementorIO/Python-Learning-Resources

過程中還牽涉到部署,我的網站是跑在Linux上的。關於部署網上有非常多的優質教程,一搜一大把。這里就不再贅述。

這些是我學習大致路線,當然過程中充滿著小的磕磕絆絆,雖然網站上線了,貌似運行還比較順利,但是如果以一個程序員的標准來要求自己,自己依然非常菜鳥。不過我並沒有以前那樣懼怕技術了,就像你明白魔術的背後的原理後,會更多的思考原理本身。

『伍』 小學生怎麼樣自學編程

首先零基礎是能學python的,很多編程大神入門之前都選擇先學習Python,所以想學就大膽去學吧,沒學之前誰不是零基礎,就算是現在才下定決心學也不怕,學習Python什麼時候都不算晚。

零基礎如何學好python,作為一個學了python兩三年的過來人,我當初也是從0開始一路摸索過來的,這里給想學python的小白們分享一點我的學習心得。

不管你學習什麼,都是有科學的學習方法與合理的學習計劃的,只要這兩點你准備充足,那麼Python從入門到精通,你比其他人耗費的時間要短得多,甚至有勤奮的小夥伴,短短半年就能獨當一面了。 開始學注意幾點:

  • 對自己的水平有正確的認知

  • 在學習Python時,每個人的基礎水平不一樣,如果你完全是新手,就需要從入門課程或初學者讀物開始鑽研,不要想著一開始就去挑戰高難度課程,我也是零基礎學習Python的,因為知道學會並不是件非常容易事情,所以想先潑點冷水,學習Python不是一蹴而就的事情,現在的你要有一個正確的認知,學完Python,並不能立馬拿一兩萬的工資,Python也沒有那麼簡單,別想著1個月、2個月就能學會,你至少得花費半年左右時間去學習。

  • 不要閉門造車

  • 不要以為自己可以解決所有問題,學習python是很抽象的,尤其是在剛開始學的時候,很多時候都會感到無從下手。 所以我建議大家一定要懂得借力,找一些身邊學得好的前輩,或者你認識的朋友帶帶你,有人指引真的會事半功倍,效率更高。 最好是和有經驗的人多多交流,可以學到很多好的學習方法和技巧,提高我們的學習效率。 我的一個好友,也是python行業大佬,之前我學習的時候請教過他問題,非常樂於助人,現在全民都在直播,所以他也每天固定時間在自己的分享群里,直播免費分享自己的python干貨知識,講講自己的學習和工作心路歷程,講一下零基礎學習哪些內容及怎麼學才能夠找到一份不錯的工作,也分享下自己接單做副業的經驗,畢竟他只做下接單都能月入過萬。

『陸』 初學python,感受和C的不同

從開始看Python到現在也有半個多月了,前後看了Python核心編程和Dive
into
Python兩本書。話說半個月看兩本,是個人都知道有多囫圇吞棗,這也是因為我暫時沒有需求拿這個做大型開發,主要是平時的小程序test用一用。所以我的策略是,整體瀏覽,用到時候現查。話說這核心編程第一版太古老了,老在講2.2之前的東西,我看的翻譯電子版,翻譯得也不好,很晦澀。看完這個後還有點雲里霧里,看網上人家說DIP好,啄木鳥還有免費電子文檔,就找來看這個。怎麼說呢,講的比核心編程好,但不適合第一次看的初學者。我之所以覺得講得好,是因為看核心編程,有些概念還有些模糊,看了這本書就明白不少了。要是初學者上來就看這本,保證不好理解。

下面就是在學習的過程中,在翻閱資料的過程中,總結的一些C和python比較明顯的不同之處,有大方向的,也有細節的。肯定沒有總結完,比如動態函數,lambda這些,我都懶得往上寫了。實際上,作為兩種完全不同的語言,下面這些差異只是冰山一角而已。權當拋磚引玉吧,至少應該對和我有相同研究興趣,正在考慮是否學習另一門語言的朋友有點幫助。此文也算是DIP的學習筆記吧。順帶說一句,要是有朋友了解,可以幫忙推薦一下實戰性強的Python教材,語言這東西,不多練手,光比劃,是不可能學好的。

學習目的

我的以後的研究方向是嵌入式,顯然,C語言是我的主要語言。我不是一個語言愛好者,我以前覺得,對於做研究而不是應用的人來說,了解多門語言,不如精通一門語言。之所以去看python,主要還是因為python更有利於快速開發一些程序,也是因為現在認識到,研究和應用是不能分離的。個人以為,要想在計算機工程的競爭中立足,必須懂C語言。因為真正要做高性能編程,
不可能將機器的體系架構拋到腦後讓Python虛擬機(或Java虛擬機等)幫你搞定所有底層。越來越多的CPU
core,越來越恐怖的內存性能瓶頸,對於上層開發人員來說,無所謂,但是對高性能程序開發人員來說,這些是無法透明的。很多應用,還是自己掌控比較有效。這些場合中,匯編和C還是不可替代的。但是,光知道C是不夠的,掌握一門面向對象語言,相對更高層的語言,不僅對以後的個人發展有利,也會對自己的技術認識產生幫助。

如果要問對我來說誰更重要,我覺得還是C更重要。C的學習曲線更陡,貌似簡單,實際上到處都是陷阱,看上去比較簡單低效的程序,也不是學1,2個月就能搞定的。談到優化的深層次和難度嘛,需要的功底是按年算的。但是一旦你C語言的基礎打好了,對計算機的理解,對其他語言的理解都是大有裨益的。比如,如果你有C基礎,可以說,學過1天python,就能寫的出來一些不短的程序。後面的優化也不是什麼大不了的演算法,都是非常基本的語句換來換去。當然這里不是說
Python不好,實際上,上層應用,Python比C方便的不是一個層次。

很多人覺得,既然懂C了,那麼進一步掌握C++應該是水到渠成,但C++不是C的超集,而我又不喜歡C++的繁瑣和巨大,所以才決定看一看Python。我很喜歡Python的優雅與快捷。

語言類型

和C不一樣,Python是一種動態類型語言,又是強類型語言。這個分類怎麼理解呢?大概是可以按照下列說明來分類的:

靜態類型語言

一種在編譯期間就確定數據類型的語言。大多數靜態類型語言是通過要求在使用任一變數之前聲明其數據類型來保證這一點的。Java和 C 是靜態類型語言。

動態類型語言

一種在運行期間才去確定數據類型的語言,與靜態類型相反。Python 是動態類型的,因為它們確定一個變數的類型是在您第一次給它賦值的時候。

強類型語言

一種總是強制類型定義的語言。Java 和 Python 是強制類型定義的。您有一個整數,如果不明確地進行轉換 ,不能將把它當成一個字元串。

弱類型語言

一種類型可以被忽略的語言,與強類型相反。VBScript 是弱類型的。在 VBScript 中,您可以將字元串 』12′ 和整數 3 進行連接得到字元串』123′,然後可以把它看成整數 123 ,所有這些都不需要任何的顯示轉換。

對象機制

具體怎麼來理解這個「動態確定變數類型」,就要從Python的Object對象機制說起了。Objects(以下稱對象)是Python對於數據的抽象,Python中所有的數據,都是由對象或者對象之間的關系表示的,函數是對象,字元串是對象,每個東西都是對象的概念。每一個對象都有三種屬性:實體,類型和值。理解實體是理解對象中很重要的一步,實體一旦被創建,那麼就一直不會改變,也不會被顯式摧毀,同時通常意義來講,決定對象所支持的操作方式的類型(type,包括number,string,tuple及其他)也不會改變,改變的只可能是它的值。如果要找一個具體點的說明,實體就相當於對象在內存中的地址,是本質存在。而類型和值都只是實體的外在呈現。然後Python提供一些介面讓使用者和對象交互,比如id()函數用來獲得對象實體的整形表示(實際在這里就是地址),type()函數獲取其類型。

這個object機制,就是c所不具備的,主要體現在下面幾點:

1 剛才說了,c是一個靜態類型語言,我們可以定義int a, char
b等等,但必須是在源代碼裡面事先規定。比如我們可以在Python裡面任意一處直接規定a =
「lk」,這樣,a的類型就是string,這是在其賦值的時候才決定的,我們無須在代碼中明確寫出。而在C裡面,我們必須顯式規定char *a =
「lk」,也就是人工事先規定好a的類型

2 由於在C中,沒有對象這個概念,只有「數據的表示」,比如說,如果有兩個int變數a和b,我們想比較大小,可以用a ==
b來判斷,但是如果是兩個字元串變數a和b,我們就不得不用strcmp來比較了,因為此時,a和b本質上是指向字元串的指針,如果直接還是用==比較,那比較的實際是指針中存儲的值——地址。

在Java中呢,我們通過使用 str1 == str2 可以確定兩個字元串變數是否指向同一塊物理內存位置,這叫做「對象同一性」。在 Java 中要比較兩個字元串值,你要使用 str1.equals(str2)。

然後在Python中,和前兩者都不一樣,由於對象的引入,我們可以用「is」這個運算符來比較兩個對象的實體,和具體對象的type就沒有關系了,比如你的對象是tuple也好,string也好,甚至class也好,都可以用」is」來比較,本質上就是「對象同一性」的比較,和Java中的==類似,和
C中的pointer比較類似。Python中也有==比較,這個就是值比較了。

3
由於對象機制的引入,讓Python的使用非常靈活,比如我們可以用自省方法來查看內存中以對象形式存在的其它模塊和函數,獲取它們的信息,並對它們進行操作。用這種方法,你可以定義沒有名稱的函數,不按函數聲明的參數順序調用函數,甚至引用事先並不知道名稱的函數。
這些操作在C中都是不可想像的。

4 還有一個很有意思的細節,就是類型對對象行為的影響是各方面的,比如說,a = 1; b =
1這個語句中,在Python裡面引發的,可能是a,b同時指向一個值為1的對象,也可能是分別指向兩個值為1的對象。而例如這個語句,c = []; d
= [],那麼c和d是肯定指向不同的,新創建的空list的。沒完,如果是」c = d =
[]「這個語句呢?此時,c和d又指向了相同的list對象了。這些區別,都是在c中沒有的。

最後,我們來說說為什麼python慢。主要原因就是function call overhead比較大。因為所有東西現在都是對象了,contruct 和destroy 花費也大。連1 + 1 都是 function call,像』12′+』45′ 這樣的要 create a third string object, then calls the string obj』s __add。可想而知,速度如何能快起來?

列表和數組

分析Python中的list和C中的數組總是很有趣的。相信可能一些朋友和一樣,初學列表的時候,都是把它當作是數組來學的。最初對於list和數組區別的定性,主要是集中在兩點。首先,list可以包含很多不同的數據類型,比如

["this", 1, "is", "an", "array"]

這個List,如果放在C中,其實是一個字元串數組,相當於二維的了。

其次呢,list有很多方法,其本身就是一個對象,這個和C的單純數組是不同的。對於List的操作很多樣,因為有方法也有重載的運算符。也帶來一些問題,比如下面這個例子:

加入我們要產生一個多維列表,用下面這個語句

A = [[None] * 2] * 3

結果,A的值會是

[[None, None], [None, None], [None, None]]

初一看沒問題,典型的二維數組形式的列表。好,現在我們想修改第一個None的值,用語句

A[0][0] = 5

現在我們再來看看A的值:

[[5, None], [5, None], [5, None]]

發現問題沒有?這是因為用 * 來復制時,只是創建了對這個對象的引用,而不是真正的創建了它。 *3 創建了一個包含三個引用的列表,這三個引用都指向同一個長度為2的列表。其中一個行的改變會顯示在所有行中,這當然不是你想要的。解決方法當然有,我們這樣來創建

A = [None]*3
for i in range(3):
A[i] = [None] * 2

這樣創建了一個包含三個不同的長度為2的列表。

所以,還是一直強調的,越復雜的東西,越靈活,也越容易出錯。

代碼優化

C是一個很簡單的語言,當我們考慮優化的時候,通常想得也很簡單,比如系統級調用越少越好(緩沖區機制),消除循環的低效率和不必要的系統引用,等等,其實主要都是基於系統和硬體細節考慮的。而Python就完全不一樣了,當然上面說的這些優化形式,對於Python仍然是實用的,但由於
Python的語法形式千差萬別,庫和模塊多種多樣,所以對於語言本身而言,就有很多值得注意的優化要點,舉幾個例子吧。

比如我們有一個list L1,想要構建一個新的list L2,L2包括L1的頭4個元素。按照最直接的想法,代碼應該是

L2 = []
for i in range[3]:
L2.append(L1[i])

而更加優化和優美的版本是

L2 = L1[:3]

再比如,如果s1..s7是大字元串(10K+),那麼join([s1,s2,s3,s4,s5,s6,s7])就會比
s1+s2+s3+s4+s5+s6+s7快得多,因為後者會計算很多次子表達式,而join()則在一次過程中完成所有的復制。還有,對於字元串操作,對字元串對象使用replace()方法。僅當在沒有固定字元串模式時才使用正則表達式。

所以說,以優化為評判標准,如果說C是短小精悍,Python就是博大精深。

include和import

在C語言中的include非常簡單,因為形式單一,意義明確,當你需要用到外部函數等資源時,就用include。而Python中有一個相似的機制,就是import。乍一看,這兩個傢伙挺像的,不都是我們要用外部資源(最常見的就是函數或者模塊(Python))時就用這個來指明么?其實不然,兩者的處理機制本質區別在於,C中的include是用於告訴預處理器,這個include指定的文件的內容,你都給我當作在本地源文件中出現過。而

import呢,不是簡單的將後面的內容*直接*插入到本地裡面去,這玩意更加靈活。事實上,幾乎所有類似的機制,Python都比C靈活。這里不是說C不好,C很簡練,我其實更喜歡C。

簡單說說這個靈活性。import在python中有三種形式,import X, from X import *( or a,b,c……), X =
__import__(『x』)。最常用的是第二種,因為比較方便,不像第一種那樣老是用X.mole來調用模塊。from X import
*只是import那些public的mole(一般都是不以__命名的模塊),也可以指定a,b,c來import。

什麼時候用哪一種形式呢?應該說,在大多數的模塊文檔里,都會明確告訴你應該用哪種形式。如果需要用到很多對象,那麼from X import
*可能更合適一些,但是,就目前來看,大多數第三方Python庫都不推薦使用from molename import *
這種格式。這樣做會使引入者的namespace混亂。很多人甚至對於那些專門設計用於這種模式的模塊(包括Tkinter,
threading和matplot)都不採用這種方式。而如果你僅僅需要某個對象類a,那麼用from X import a比用import
X.a更好,因為以後你調用a的函數直接用a.function()既可以了,不用加X。

如果你連自己希望import的模塊都不知道怎麼辦?請注意,此時Python的優勢就體現出來了,我們可以用
__import__(mole)來調用mole,其中這個mole是字元串,這樣,可以在運行時再決定,你到底要調用什麼mole。舉個例子:

def classFromMole (mole, Name):
mod = __import__ (mole)
return getattr (mod, Name)

這里,定義了一個函數classFromMole,你可以在代碼的任何時候調用它,

o = classFromMole (MoleOfTheClass, NameOfTheAttribute)()

只需要傳入字元串形式的你希望import的模塊MoleOfTheClass和其中屬性的名字NameOfTheAttribute(當然可以是數據也可以是方法),就能調用了,這個名字字元串不用事先指定,而是根據當時運行的情況來判斷。

順帶說一句,Python中import的順序也有默認規定,這個和C中的include有點類似,因為我們一般都是先include系統文件,再
include自己的頭文件(而且還有<>和「」的區別)。Python中呢,一般應該按照以下順序import模塊:

1. 標准庫模塊 — 如 sys, os, getopt 等

2. 第三方模塊

3. 本地實現的模塊。

全局變數

這里談全局變數呢,倒不是說Python和c的全局變數概念不同,他們的概念是相同的。只是在使用機制上,是有一些差異的。舉個例子:

– mole.py –
globalvar = 1

def func():
print globalvar
# This makes someglobal readonly,
# any attempt to write to someglobal
# would create a new local variable.

def func2():
global globalvar
globalvar = 2
# this allows you to manipulate the global
# variable

在 func這個函數中,globalvar是只讀的。如果你使用了globalvar =
xxx這種賦值語句,Python會重新創造一個新的本地對象並將新值賦給它,原來的對象值不變。而在func2函數中,由於我們事先申明了
globalvar是global的,那麼此時的更改就直接在全局變數上生效。

很明顯這和c中的使用機制是不一樣的,在c中,我們只要在函數外的全局區域申明了變數,就可以在函數中直接對其操作,不用還申明一個global。

Published 2008-06-22

Filed in c,code,python and
tagged c, python

『柒』 Python精選5篇教學心得

Python是一種跨平台的計算機程序設計語言,是一種面向對象的動態類型語言,越來越多被用於獨立的,大型項目的開發,已被逐漸廣泛應用於系統管理任務的處理和Web編程。下面給大家帶來一些關於Python 學習心得 ,希望對大家有所幫助。

python學習心得1

最近這段時間我們學習了很多內容,增長了很多關於Python的知識,萬事萬物是相通的,正如學習新的知識就像吃飯一樣。

吃多了就會消化不良,反映到學習上也是一樣,不知各位最近的感覺怎樣,反正學記是需要一些時間好好消化,掌握到手中,為下一步的知識補齊缺口。

接下來,學記和大家一起回顧一下最近學習的內容,循序漸進,循序漸進。

分支結構

分支結構就像上圖一樣,是用來選擇道路的。

所用的關鍵字是

If elif else

這三個詞的意思分別是

如果 否則如果 其他的

分支語句的寫法需要將與關鍵字與關鍵字對齊

循環結構

循環結構應用於一些重復的進程

通常我們只接觸兩種循環

for-in循環 和 while循環

for-in循環適用於

確切的知道到底循環幾次

while循環適用於

不知道到底有幾次循環

此時要搭配bool 來進行

即 True 和 Flase

關鍵字

關鍵字的熟練運用對於今後的開發工作

有非常重要的作用,但這么多關鍵字我們不能去死記硬背

只有在一個一個代碼的驗證當中去熟悉去掌握

那樣是最可靠的

def 設置模組

len 計算字元串長度

capitalize 獲得字元串首字母大寫的拷貝

upper 獲得字元串變大寫後的拷貝

find 從字元串中查找子串所在位置

index 與find類似但找不到子串時會引發異常

startswith 檢查字元串是否以指定的字元串開頭

endswith 檢查字元串是否以指定的字元串結尾

center 將字元串以指定的寬度居中並在兩側填充指定的字元

rjust 將字元串以指定的寬度靠右放置左側 填充指定的字元

isdigit 檢查字元串是否由數字構成

isalpha 檢查字元串是否以字母構成

isalnum 檢查字元串是否以數字和字母構成

append 添加元素

remove 刪除元素

clear 清空元素

sorted 排序

大家可能會有些疑惑,學習這些東西真的有用嗎?這些隨處可見的基礎方面的知識真的有用嗎?

我可以非常肯定地告訴大家

有用的!

這些知識就像是建築工地隨處可見的磚石,不管這些磚石怎樣的不起眼,但是沒有一幢建築可以離開磚石,學習的過程是枯燥的,不過這也正符合非常現實的一條規律。

學如逆水行舟,不進則退!

也正是因為它枯燥苦悶,學習有難度,才保證了,我們學習了這些知識以後,可以靠它們為生,在這個知識時代闖出自己的一片天!

不要放棄,絕對不要放棄!

黎明之前是最黑暗的!

為了自己的未來好好堅守吧!

青年學記 陪伴著各位青年

python學習心得2

python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。而且,在字元串上的處理,python相對於c語言也是給程序員極大的便利。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。但是,我認為python雖然在許多方 面相 對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。

python是一門非常有潛力的高級語言,歷經多年的發展,其在編程上發揮著越來越大的作用。在這學期中,通過選修python課上的基礎知識學習,我對python也有了一定的認識。

在學習python的第一節課上,其對我的最初的印象就是,相較於我學習過的c語言編程,它更加的簡潔。所有的變數都不需要像c語言編程那樣需要提前去定義,這樣給了編程者很大的自由空間與方便。如x=2,即可同時完成變數的定義與賦值。對於簡化程序的代碼,起到了許多的作用。而且,在字元串上的處理,python相對於c語言也是給程序員極大的便利。在c語言中,只能用字元類的數組對字元串進行相應的操作,步驟也是相對於比較繁瑣的,而在python中,當我們需要創建一個字元串的時候,只需要在創建字元串的時候用「s=」就可以了。而python不僅如此,它的庫也很多,正因為它強大的庫,讓編程變得不再艱難。我們只需要調用庫中的函數,而對於函數的具體實現,也沒有特殊的需求。

但是,我認為python雖然在許多方面相對於c語言比較方便,但也有其相對於弱一點的方面,比如說for循環等方面。不過也依然不會影響到python的強大,而隨著近幾年來的發展,python的受歡迎度也越來越高,而它的運用的領域也是越來越多,比如人工智慧和大數據等領域,python都是在其中扮演者重要的角色。雖然一學期下來,我對python的學習也僅僅只是它的基礎方面,但python的強大,也是足足地吸引著我,希望自己能夠在不斷地學習中,將python學習的更加好。

python學習心得3

由於我是自學Python,非科班出生,所以只能分享一些關於我的學習心得,如果有不對地方歡迎指正。

不過非科班出生雖然是一個痛點,但是在工作上,我其實不輸給我其他同事,這點我倒是很有自信,而且我也統一一句話「目前互聯網上的免費編程課程,足夠讓你成為一個合格的碼農」。

編程入門

我剛開始學習編程,主要是因為自己想動手做個網站,但是由於技術原因,再加上朋友都比較忙,最後抱著「求人不如求己」的想法,乾脆自學。

編程難不難?

這個問題我覺得所有認真學過的人,都一定會肯定告訴你編程不難,但是精通那是相當困難的。

如果你還沒去學習,就覺得編程一定很難,那麼其實你是沒有資格說這句話的,任何事情一定是要去嘗試後,才能這么說。

編程其實很像堆積木,然後根據需求,把東西造出來,可以是房子,也可以是橋梁。

學習編程無非運用這些積木,來創造你要的東西。

編程語言選擇

這邊說個題外話,關於當時編程語言的選擇,很多時候我覺得不是你選擇編程語言,而是編程語言選擇你,也就是你的「本命編程語言」。

人的性格會影響你適合的編程語言,比如你做事有條理,喜歡定期清理房間,那麼可能C語言很適合你;如果你不喜歡打掃房間,實在受不了,才打掃一次,可能你適合Java。

哈哈,開個玩笑,不過確實有這種很玄的存在。

我當時在編程語言的選擇上,用了一個笨 方法 。

我跑到w3cschool上面,把所有編程語言的第一章都去試了一遍,看看自己喜歡哪個語言,然後就選哪個語言,如果你不知道選哪門語言,可以用我的方法試試看。

至於編程語言,沒有高低之分,因為無論你學習哪門語言,你都非常有市場,而且你都能夠拿到高薪,關鍵是哪門語言適合你,並且能夠讓你有興趣學下去,能學好,這個很關鍵。

興趣是學習編程最大的驅動力!

為什麼是Python

說下為什麼選擇Python?

因為簡單,Python是公認的最容易入門的編程語言,而且也是公認有發展前景的編程語言,適用於機器人、大數據、人工智商等未來高科技。

基於以上的原因,我選擇Python來作為自己的入門語言,而且我覺得我適合Python這么語言。(因為我很懶)

之前有個梗,大概就是其他編程語言在討論某個問題,怎麼解決,而Python的程序員已經下班了,由此可見Python的效率。

總結 :Python的語言特點就是「一氣呵成,痛快如拉稀」。

學習心得

由於我是自學的,所以參考的網站比較多,小夥伴可以按照我的學習路線,一般來說不會出現什麼問題。

基礎:教程+視頻

進階:視頻+實踐

進階pro:視頻+實踐+書籍+交流

基礎

剛開始學習的時候,我比較推薦w3cschool和菜鳥教程這兩個網站。

w3cschool-學編程,從w3cschool開始www.w3cschool.cn!

菜鳥教程 - 學的不僅是技術,更是夢想!www.runoob.com

這兩個網站在我看來,是編程自學的福音。

w3cschool這個網站手冊非常棒,另外這個網站的編程微課以及編程實戰對新手來說非常友好!

我當時就是靠這兩個,引發我學習的樂趣,不然對著枯燥的代碼,說實話,很無聊的。

菜鳥教程,這個網站的實例是最棒的,很多時候,你不僅僅要自己看教程,還要去看看為什麼,而菜鳥教程的實例就能夠讓你清晰的知道,為什麼,並且會原來如此。

總的來說,這兩個網站就像新手村剛出來的劍和盾!是新手入門絕對不能少的,尤其是w3cschool,強烈推薦。

還有一個就是視頻,視頻我是在慕課網上面看的,我很喜歡慕課網這個網站,網站風格很棒,而且視頻也很清晰。

也可以在阿里雲上面看Python的視頻,也很不錯,並且是免費的。

進階

進階結束後,代表你是個初級工程師。

這一步實踐非常重要,你要自己動手,做一些小玩意,實踐才是最重要的,在實踐中發現問題,那是學習最快並且效率最高的時刻。

你可以先給自己定下一個目標,比如我要做一個簡單的頁面,或者我要做一個簡單的小程序。

然後就開始動手去實踐,這步很重要。

同時還是要多看書籍。

進階pro

到這一步,我建議務必買書,你需要書籍幫你反向梳理你的知識,這決定了你以後的高度,而不是這個也懂,那個也懂,但是東西就是做不出來。

我記得當時我買完書,看完後的第一感受就是:原來這個世界是這樣的!

書會非常系統性的幫你梳理你自己學過的知識!

這里只推薦兩本書:《Python入門手冊》和《Python核心編程》

小夥伴可以自己去亞馬遜購買。

然後就是和身邊的小夥伴交流!

多看看別人的代碼,自己多敲敲代碼,是必經之路,也是一定要做的。

以上,希望對想入門Python的小夥伴能夠提供一點點幫助。

python學習心得4

017年11月,一群編程零基礎的小夥伴們成立了Python學習小組,12名學員從此夜以繼日地奔赴學習的征程。一個月過去了,從在屏幕上用最簡單的語句列印出「Hello, Python; Hello, World」開始,我們逐步地學習Python語法,學習操作列表、字典,學習For,While,If語句,現在遇到了第一個難點:類。通過研讀、練習、交流、討論,作為程序界的小白,我們逐步地理解了類的概念,明白了面向對象與面向過程編程的差異,以下是我們的小小心得,與大家分享:

編程基本思想

現實世界中,每個復雜的事務都可以拆分為多個組成部分,其中的每一部分就可稱之為對象。比如要實現一個很大很復雜的項目,我們可以把項目拆分成不同的組成部分,然後分別對不同部分通過編程實現,最終再把各個部分組裝起來完成整個項目。這讓我們能夠從整體上來控制項目,從而讓程序開發更有效。

比如汽車製造,汽車廠所做的僅僅是各個部件的組裝和匹配,而各個部件的生產是由相對專業的廠商完成。如果需要研發新型號汽車,整車廠所考慮的是如何對各個新式的零部件進行新的組裝和匹配,而不是從頭到尾重新生產一輛汽車。

面向對象的編程

VS

面向過程的編程

面向過程編程是針對一個需求的具體實現過程,但是對於大型項目的復雜需求,一步一步的做,這種編程效率顯然是低下的。

面向對象編程則是對項目進行拆分後(一般按照功能拆分),分別實現,再將各個對象組裝起來。因此簡單的小程序使用面向過程方法編程更適合。面向對象的編程特性是易維護(可讀性高),效率高,質量高(重用性),擴展性好(高內聚,低耦合)。

對象

通俗的講,對象就是事物,一個公司、一個部門、一個人,甚至一本書都可以是一個對象,程序員可以自由決定把什麼作為對象。

比如eHR系統,需要對組織架構,員工進行管理,所以使用的對象可能是公司,部門,崗位,員工,等等。對象可大可小,可復雜也可簡單,如果僅僅是做一個考勤系統,員工這個對象一定要比eHR系統中的員工對象簡單。

現實世界中,類代表一組有共同特性的事物,把不同對象之間的共性抽象出來,就形成類的概念。比如說男人、女人可以抽象成人這個類;處長、秘書可以抽象成員工類。至於類如何去抽象,粒度的粗細,這是一個需要在學習和實踐中摸索的過程。

實例

以下是一個實例,大家體會一下:

1. 定義父類:

class Employee:

def __init__(self, name, age): #抽象員工共性(名字,年齡)

self.name = name

self.age = age

def signON(self):

print(self.name+" sign on.") #抽象簽到的動作

def work(self):

print(self.name + " on work.") #抽象工作的動作

2. 繼承出子類:

class MEmployee(Employee): #繼承父類的共性

def __init__(self, name, age):

super().__init__(name, age)

def work(self): #重寫子類的方法(抽象出從事管理崗位工作的動作)

print(self.name + " on manager_work.")

3. 繼承出第二個子類:

class TEmployee(Employee):

def __init__(self, name, age, devLanguage): #繼承父類的共性,增加語言的屬性

super().__init__(name, age)

self.devLanguage = devLanguage

def work(self): #重寫子類的方法(抽象出從事技術崗位工作的動作)

print(self.name + " on technology_work.")

def showLanguage(self): #增加子類的方法(抽象出會某種編程語言的動作)

print("use "+self.devLanguage+" language.")

在上面的程序中,我們先定義了一個父類:包含員工的姓名、年齡等一般特性,可以執行簽到、工作這兩類動作。在第一個子類中,管理層在前面一般特性的基礎上,執行管理工作;在第二個子類中,作為一般員工在前面一般特性的基礎上,執行技術工作,從事編程。

python學習心得5

1、定義方法

關鍵字 def 是方法定義的標志。接下來緊跟方法名和被圓括弧所包圍的參數列表。方法的主

體語句將在下一行開始並且必須縮進。

方法主體的首句可選擇性地是一句字元,用來說明方法的主要功能

例如:

"""print a finabo series up to n."""

2、默認參數值

默認值僅被設置一次,這與以前默認值為可變對象(如列表、字典和多數類實

例時)有很大的區別。

例如:

i=5

def f(arg=i):

print(arg)

i=6

f()

將會輸出 5

3、關鍵字參數

可以通過形式關鍵字參數調用方法

在方法調用中,關鍵字參數必須遵循位置參數。 所有的關鍵參數必須符合方法接受的參數

其中之一。但是他們的次序不重要,這包含非選擇的參數。沒有參數可以多次接受一個值。

當最後一個形參是__ name 時,它可以接受包含除了形式參數之外的所有關鍵字的字典,

_ name 必須在__ name 之前出現

4、可變參數列表

正常來說,這些可變參數常常放在正式參數列表的後面,因為它們會包攬所有傳遞給該方法

的剩餘輸入參數。任何出現在_ args 參數後低的正式參數會被認為是關鍵字參數,意味著它

們只能當關鍵字使用而不是位置參數。

>>> def concat(_ args,sep="/"):

...returnsep.join(args)

...

>>> concat("earth","mars","venus")

』earth/mars/venus』

>>> concat("earth","mars","venus", sep=".")

』earth.mars.venus』

5、拆分參數列表

當參數已經存在列表或者元組中,但是需要分拆以供要求分離位置參數調用的方法,如果單獨

分開它們無法使用,就需要寫一個方法用 _ 操作符來調用實現分拆列表或者元組中的參數。

同樣的使用形式,字典可以用__ 操作符實現關鍵字參數。

6、形式

lamdba a,b:a+b 該函數表示兩個數的和,像內嵌函數

7、代碼風格

對於 python,PEP8 作為許多項目應該遵守的編碼指導書而做的。 它提出了一種可讀而悅

目的編碼風格。 每位 python 開發者應該讀它。這里抽出一個重要的事項與你分享 :

? 用四個空格代替 tab 鍵

? 每行不要超過 79 個字元。

? 用空行分離方法和類,大塊代碼中的方法。

? 必要的時候為每行添加註釋。

? 用文檔字元串

? 在操作符兩邊用空格

? 用統一的風格命名自定義的方法和類

? 如果你的代碼打算用在國際環境中,請不要用想像的字元編碼。Python 默認的是

utf-8,在任何情況下可以用 Ascii .

? 同樣的,即使有很少機會讓說不同語言的人們讀代碼或者維護代碼,但在定義中不

要用非 ASCII 編碼字元。


『捌』 請問怎麼學習Python

分享Python學習路線:

第一階段:Python基礎與Linux資料庫

這是Python的入門階段,也是幫助零基礎學員打好基礎的重要階段。你需要掌握Python基本語法規則及變數、邏輯控制、內置數據結構、文件操作、高級函數、模塊、常用標准庫模板、函數、異常處理、mysql使用、協程等知識點。

學習目標:掌握Python的基本語法,具備基礎的編程能力;掌握Linux基本操作命令,掌握MySQL進階內容,完成銀行自動提款機系統實戰、英漢詞典、歌詞解析器等項目。

第二階段:web全棧

這一部分主要學習web前端相關技術,你需要掌握html、cssJavaScript、JQuery、Bootstrap、web開發基礎、Vue、FIask Views、FIask模板、資料庫操作、FIask配置等知識。

學習目標:掌握web前端技術內容,掌握web後端框架,熟練使用FIask、Tornado、Django,可以完成數據監控後台的項目。

第三階段:數據分析+人工智慧

這部分主要是學習爬蟲相關的知識點,你需要掌握數據抓取、數據提取、數據存儲、爬蟲並發、動態網頁抓取、scrapy框架、分布式爬蟲、爬蟲攻防、數據結構、演算法等知識。

學習目標:可以掌握爬蟲、數據採集,數據機構與演算法進階和人工智慧技術。可以完成爬蟲攻防、圖片馬賽克、電影推薦系統、地震預測、人工智慧項目等階段項目。

第四階段:高級進階

這是Python高級知識點,你需要學習項目開發流程、部署、高並發、性能調優、Go語言基礎、區塊鏈入門等內容。

學習目標:可以掌握自動化運維與區塊鏈開發技術,可以完成自動化運維項目、區塊鏈等項目。

按照上面的Python學習路線圖學習完後,你基本上就可以成為一名合格的Python開發工程師。當然,想要快速成為企業競聘的精英人才,你需要有好的老師指導,還要有較多的項目積累實戰經驗。

對於Python開發有興趣的小夥伴們,不妨先從看看Python開發教程開始入門!B站上有很多的Python教學視頻,從基礎到高級的都有,還挺不錯的,知識點講的很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。

『玖』 python 書籍推薦

1.《Python編程從入門到精通》

本書循序漸進、由淺入深地詳細講解了Python3語言開發的核心技術,並通過具體實例的實現過程演練了各個知識點的具體使用流程。通過兩個綜合實例的實現過程,介紹了Python
3語言在綜合項目中的使用流程。全書內容循序漸進,以「技術解惑」和「範例演練」貫穿全書,引領讀者全面掌握Python 3語言。

書中共有900多個實例和範例、300多個正文實例、600多個拓展範例、77個課後練習、63個技術解惑、兩大綜合案例,每個知識點除了一個實例外,還有兩個拓展範例,達到舉一反三的效果。

2.《易學Python 》

《易學Python》採用簡潔、有趣、易學的方式對Python 3編程語言進行了講解,其風格與通篇介紹編程特性、羅列語言功能的大多數編程圖書不同,而是引導讀者帶著好奇,帶著問題去學習、掌握Python編程語言,繼而編寫真實而有用的程序。

無塵茄論你是零基礎的Python初學人員,還讓此是具有其他語言編程經驗,但是想從事Python開發的人員,《易學Python》都將帶領你踏上有趣的Python學習之路。

3.《Python核心編程(第3版)》

暢銷經典的Python書,兼顧Python2和Python3,Python開發人員的案頭常備。本書涵蓋了成為一名技術全面的Python開發人員所需的一切內容。本書講解了應用派滑察開發相關的多個領域,而且書中的內容可以立即應用到項目開發中。此外,本書還包含了一些使用Python
2和Python 3編寫的代碼案例,以及一些代碼移植技巧。有些代碼片段甚至無須修改就可以運行在Python 2.x或Python 3.x上。

4.《趣學Python編程》

Python是一種強大並通俗易懂的編程語言,而且它易學又好用!但是關於學習Python語言的書大多很枯燥無趣,讀起來沒什麼樂趣。本書把你帶入一個鮮活的Python編程世界。每章後面都配有編程練習來幫助訓練思維並加強理解。

對於Python開發有興趣的小夥伴們,不妨先從看看Python開發書籍開始入門!B站上有很多的Python教學視頻,從基礎到高級的都有,還挺不錯的,知識點講得很細致,還有完整版的學習路線圖。也可以自己去看看,下載學習試試。

熱點內容
取票人的密碼是什麼 發布:2024-05-20 08:21:43 瀏覽:962
天貓帳號密碼應輸入什麼 發布:2024-05-20 08:16:26 瀏覽:272
plsql異常處理 發布:2024-05-20 07:54:47 瀏覽:542
dreamweaver上傳網頁 發布:2024-05-20 07:51:24 瀏覽:462
拍攝車的分鏡頭腳本 發布:2024-05-20 07:50:15 瀏覽:137
mg名爵最高配置是哪個 發布:2024-05-20 07:45:11 瀏覽:376
輔助官網源碼 發布:2024-05-20 07:31:48 瀏覽:866
androidbutton的屬性 發布:2024-05-20 07:18:58 瀏覽:637
查找重復欄位的sql 發布:2024-05-20 07:18:17 瀏覽:303
我的世界創造房子伺服器 發布:2024-05-20 06:48:36 瀏覽:818