你們都是怎麼學python的?

Ce塞西莉婭


人生苦短,I Write Python

作為一名一線研發人員,雖然最近幾年只是使用Python完成一些腳本工具的編寫,不過不妨礙自己在這裡大膽的將學習過程進行總結輸出,歡迎各位大佬拍磚。

Python的理念就是簡潔、優美。可能,你使用C++、Java等編程語言幾行甚至十幾行才可以完成的功能,Python一行代碼即可搞定。

在編程的道路上,我們要始終相信一萬小時定律,沒有什麼捷徑可以走,眼過千遍不如手過一遍,這句我們從小上學就被老師教導的語句在編程之路上依舊是成立的,“整就牛”,動手coding才是最直接的。

下面推薦一些經典的資料:

1. Python官方文檔

首推官方文檔,我想這個應該沒有什麼二義性了,你所有的疑問都是可以在這裡找到答案的,如果你擔心自己的英文不夠優秀,完全沒有關係,它也是存在中文文檔的。

2. Python編程從入門到實踐

如果你之前從未接觸過Python,甚至沒有接觸過編程,那麼很好,這本書正是為你準備的,

3. 流程的Python

這本應該算的上是進階級別的作品了。他可以帶領我們領略Pyhton的一些原理和特點, 而不只是停留在框架使用上面,仔細的去閱讀它,實踐它,你將會收貨更多。

當然,最後要說的,還是那句話,整就牛!

最後,不要再去參與什麼IDE、編輯器的聖戰。VisuaStudio、PyCharm、Vim、VSCode等等等等,哪個順手就用哪個,多多編碼,多多實戰,才是快速提升自己編程功底的便捷之道。用黑哥的一句話來總結,正就牛!


一個程序員的奮鬥史


我是自學的,找著了一些入門的視頻,跟著學。差不多了,就做一些簡單的項目,敲代碼加深印象。後來又買了兩本書,沒事了就抽空看看。自己一個人學習特無聊,然後就在網上跟大家交流了。你要是想學python,我們可以多多交流,一起進步。我目前主攻爬蟲和Django


這輩子就python了


需要明確一點:沒有捷徑。編程是需要反覆練習的。也就是頻繁的敲代碼驗證所學所想。

因為之前我一直用Java,抽空學習了python,然後用來爬了一些不能言說的東西,也用過其他編程語言;所以感覺最快的速度就是實戰學的最快,嘿嘿嘿!

分兩種情況學習:

  • 沒有編程語言基礎,0基礎開始學習;

  • 有其他編程語言基礎然後學習Python。

沒有編程語言基礎開始學習

1、在培訓機構報名學習。

不得不說這是最有效的學習方法。因為價格不菲,交錢了,所以學習格外有動力;還因為學習環境更能驅動自己,還因為有更易交流的環境和人,當然培訓機構和老師為了口碑,一般都會把最精華的交給學生。這時候只要跟隨老師的課堂節奏,基本都能學會。更深層的學習稍後詳談。

培訓機構就不介紹了,避免廣告嫌疑。

2、自學、或者學校。

這兩個放一起,其實學校老師教和自己學基本差別不是數量級的。

計算機技術類的學習網站還是挺多的。無論是視頻、博客、書籍等。

零基礎的話推薦“視頻”+“書籍”+ 敲代碼練習

  • 視頻:-- 圖形是最有效記憶和理解方式。

基於個人經驗 推薦“極客空間”、"慕課網";前者都是付費的。後者有免費的課程。其他的還很多比如騰訊課堂,網易課堂什麼的。一般初級入門學習,看免費視頻就可以了,精進學習再買付費課程。
  • 書籍:-- 加深記憶、隨時翻閱回憶,相當於工具。

視頻基於製作成本和方式,並不是所有內容都會視頻中列出。學習資料是內容最全的,只是需要的時間成本更多,但也是學習的知識面最全的。必不可少。

書籍選擇對於編程類的很簡單:一般都是 **從入門到精通,**程序設計, **編程思想, ** 設計模式, ** 實戰。剛開始學從 “**入門到精通”的書入手就可以了,在天貓、京東、噹噹搜索,然後選銷量最多的就行了。其實也可以 看電子的,看你的個人喜好了。書中的例子最好都自己代碼實現一下。

博客基本是CSDN,博客園,簡書,W3C、RUNOOB等

  • 練習(敲代碼)

編程的學習,反覆的敲代碼驗證視頻或者書籍中例子,或者驗證自己的想法,反覆練習是必不可少的。這裡的反覆練習,並不是說好像背課文一樣一字不落的背下來。一定是先想明白原理,在動手敲,最後的目的是提及某個問題,自己想出解決方案,並代碼實現出來。切忌背代碼。


有其他編程語言基礎然後學習Python

基本你們也是老鳥了,這樣學起來很簡單啊,看看語法,看看基本類型,大概結構,開始碼代碼吧,寫著寫著、debug著debug著就會了。


還是那句話:人生苦短、我用python。


沒有什麼捷徑:記住基本語法變量等+反覆練習。實踐出真知。進步最快的方法就是用學的這個語言實現功能,解決問題,看大神的代碼。看書。是的,最後到大神只能看各種資料了,視頻是給初學者用的。


說簡單也簡單,說難也難。簡單的是代碼的搬運工,難得是把問題用代碼解決出來。世界三大科學思維之一是:計算思維。


錘哥編程


我是這樣學的。

碎片時間的利用

坐電車,午休間隙,睡前五分鐘,入眠輕鬆松。

各種有意思的工具

  • iPhone手機的pythonista,隨時隨地可以編程看效果。


  • 頭條裡的python文章,這個特別好,因為頭條很智能,會不停的推送一些相關文章。同一個問題從不同角度看,也會加深印象,容易找到自己喜歡和容易接受的講解方式。
  • python turtle,小朋友也能接受,我總是相信沒有學不會的,只有路子不對的。



各種視頻

這個就很重要,微軟也專門出了一系列的免費視頻。看視頻會印象極其深刻,也可以邊看邊操作,適合初學者。

朋友一起

一個人總是很難堅持下去,找朋友一起,可以交流,訴苦,互相鼓舞。如果參加個學習會就更棒了,偶爾來個發表,掀起個學習小高潮。

解決眼前的小問題

不貪大,人工智能呀,數據分析呀,挺好,但不急。先著眼於當下的小問題,提高下工作效率,一點一點的積累成就感。


總之,零壓力,當興趣,一定能走的更遠。謝謝。


DanceWithPython


1、首先,勤於動手敲代碼。入門時我是照著《笨辦法學Python》這本書一邊看,一邊找著書本敲代碼,做實驗。剛開始不求全都明白,先熟悉基本語法和內置函數,使自己都一個大致的瞭解。

2、網上查找一些知名博客和視頻教程,對於自己不懂的知識點重點學習,一遍一遍看教程,如廖雪峰的網站、51cto的博客和視頻教程前後看了不少。當然,看的過程中一定是要動手的,找著做一遍慢慢就懂了直至匯融貫通。

3、給自己找幾個小項目練手。比如學習從網站批量下載圖片、下載電子式,簡單的數據分析等。只有自己獨立做出了小項目,整個過程完全實現,才是真的掌握了語言。

以上是個人的經驗分享,供參考。希望對你有用!




Office聯璧Windows


8 個 Python 高效數據分析的技巧

不管是參加Kaggle比賽,還是開發一個深度學習應用,第一步總是數據分析,這篇文章介紹了8個使用Python進行數據分析的方法,不僅能夠提升運行效率,還能夠使代碼更加“優美”。

一行代碼定義List

定義某種列表時,寫For 循環過於麻煩,幸運的是,Python有一種內置的方法可以在一行代碼中解決這個問題。

下面是使用For循環創建列表和用一行代碼創建列表的對比。

x = [1,2,3,4]

out = []

for item in x:

out.append(item**2)

print(out)

[1, 4, 9, 16]

# vs.

x = [1,2,3,4]

out = [item**2 for item in x]

print(out)

[1, 4, 9, 16]

Lambda表達式

厭倦了定義用不了幾次的函數?Lambda表達式是你的救星!Lambda表達式用於在Python中創建小型,一次性和匿名函數對象。它能替你創建一個函數。

lambda表達式的基本語法是:

lambda arguments: expression

請注意,只要有一個lambda表達式,就可以完成常規函數可以執行的任何操作。你可以從下面的例子中,感受lambda表達式的強大功能:

double = lambda x: x * 2

print(double(5))

10

Map和Filter

一旦掌握了lambda表達式,學習將它們與Map和Filter函數配合使用,可以實現更為強大的功能。

具體來說,map通過對列表中每個元素執行某種操作並將其轉換為新列表。在本例中,它遍歷每個元素並乘以2,構成新列表。請注意,list()函數只是將輸出轉換為列表類型。

# Map

seq = [1, 2, 3, 4, 5]

result = list(map(lambda var: var*2, seq))

print(result)

[2, 4, 6, 8, 10]

Filter函數接受一個列表和一條規則,就像map一樣,但它通過比較每個元素和布爾過濾規則來返回原始列表的一個子集。

# Filter

seq = [1, 2, 3, 4, 5]

result = list(filter(lambda x: x > 2, seq))

print(result)

[3, 4, 5]

Arange和Linspace

Arange返回給定步長的等差列表。它的三個參數start、stop、step分別表示起始值,結束值和步長, 請注意,stop點是一個“截止”值,因此它不會包含在數組輸出中。

# np.arange(start, stop, step)

np.arange(3, 7, 2)

array([3, 5])

Linspace和Arrange非常相似,但略有不同。Linspace以指定數目均勻分割區間。所以給定區間start和end,以及等分分割點數目num,linspace將返回一個NumPy數組。這對繪圖時數據可視化和聲明座標軸特別有用。

# np.linspace(start, stop, num)

np.linspace(2.0, 3.0, num=5)

array([ 2.0, 2.25, 2.5, 2.75, 3.0])

Axis代表什麼?

在Pandas中,刪除一列或在NumPy矩陣中求和值時,可能會遇到Axis。我們用刪除一列(行)的例子:

df.drop( Column A , axis=1)

df.drop( Row A , axis=0)

如果你想處理列,將Axis設置為1,如果你想要處理行,將其設置為0。但為什麼呢?回想一下Pandas中的shape

df.shape

(# of Rows, # of Columns)

從Pandas DataFrame中調用shape屬性返回一個元組,第一個值代表行數,第二個值代表列數。如果你想在Python中對其進行索引,則行數下標為0,列數下標為1,這很像我們如何聲明軸值。

Concat,Merge和Join

如果您熟悉SQL,那麼這些概念對您來說可能會更容易。無論如何,這些函數本質上就是以特定方式組合DataFrame的方式。在哪個時間跟蹤哪一個最適合使用可能很困難,所以讓我們回顧一下。

Concat允許用戶在表格下面或旁邊追加一個或多個DataFrame(取決於您如何定義軸)。

Merge將多個DataFrame合併指定主鍵(Key)相同的行。

Join,和Merge一樣,合併了兩個DataFrame。但它不按某個指定的主鍵合併,而是根據相同的列名或行名合併。

Pandas Apply

pply是為Pandas Series而設計的。如果你不太熟悉Series,可以將它想成類似Numpy的數組。

Apply將一個函數應用於指定軸上的每一個元素。使用Apply,可以將DataFrame列(是一個Series)的值進行格式設置和操作,不用循環,非常有用!

df = pd.DataFrame([[4, 9],] * 3, columns=[ A , B ])

df

A B

0 4 9

1 4 9

2 4 9

df.apply(np.sqrt)

A B

0 2.0 3.0

1 2.0 3.0

2 2.0 3.0

df.apply(np.sum, axis=0)

A 12

B 27

df.apply(np.sum, axis=1)

0 13

1 13

2 13

Pivot Tables

最後是Pivot Tables。如果您熟悉Microsoft Excel,那麼你也許聽說過數據透視表。Pandas內置的pivot_table函數以DataFrame的形式創建電子表格樣式的數據透視表,,它可以幫助我們快速查看某幾列的數據。下面是幾個例子:非常智能地將數據按照“Manager”分了組

pd.pivot_table(df, index=["Manager\

狼眼觀察


  Python作為人工智能和數據分析第一語言,使得Python程序員成了當前人才市場的“搶手貨”,工資待遇也水漲船高。針對零基礎、非計算機專業的同學想要學習Python,千鋒認為可以著重從以下幾個方面來學習。

  一、注意細節

  區分優秀程序員和一般程序員的重要標準,就是對細節的注重程度。事實上,這也是任何行業區分好壞的標準。如果缺乏對工作中每個微小細節的注意,你的工作成果將缺乏重要的元素。拿Python編程來講,注意細節將會讓你遠離各種bug和難用的系統。

  二、發現不同

  程序員長年累月的工作會培養出一個重要技能,那就是對於不同點的區分能力。有經驗的程序員看到兩個僅有細微差別的程序,可以立即指出其中的不同。他們還會寫出程序讓這件事更加容易,以此增加對程序裡的bug 以及其他問題的敏感性。

  三、要問,不要盯著看

  你只要寫代碼,就會出現 bug。它意味著你寫的代碼有瑕疵、有錯誤、有問題。你的bug將會藏在你代碼的某處,你必須找到它們。你不能只是坐在電腦前盯著屏幕上的代碼,希望答案能自己跳出來。這樣做不會有額外的信息,你需要用額外的信息來解決問題,所以你得主動去尋找。

  四、不要複製粘貼

  你必須手動將每個項目的代碼程序打出來,複製粘貼會讓這些變得毫無意義。完成項目的目的是訓練你的雙手和大腦思維,讓你有能力讀代碼、寫代碼、觀察代碼。如果你複製粘貼,那你就是在欺騙自己,練習的效果也將大打折扣。


上海千鋒教育


怎樣學python,要因人而異。

首先,具有其他語言編程基礎的人,可以快速入門。具體建議如下:簡單瞭解python的語法—>學習現有代碼(同事實現的簡單腳本或者開源庫,根據個人能力選擇)—>動手實踐(最好基於具體的任務來做);這也是我個人的python學習經歷,工作中的主要語言是C++,所以並沒有花很大精力去學習python,用的多了慢慢就熟了。

其次,沒有其他語言編程基礎的同學,需要投入精力。最好從基礎的語法學起,建議不用投入過多精力熟記語法,因為通常記不住,即使記住了也不會用。我們做到“知道”就可以了,具體用時可以再去查詢。這樣學習會更高效。

再次,具有python基礎,想要提高的同學。方法無他,一學二看三練:學具體領域的庫,看大牛的代碼,動手練習。例如數據處理領域,pandas是必須的,深度學習領域tensorflow,pytorch,mxnet等選擇一個。

最後,經常看到xx天入門xx,入門的概念是什麼,取決於每個人對自己的定位。成功沒有捷徑,只能砥礪前行,就像賣油翁一樣(無他,唯手熟爾!)。



rongzhenlee


我看的尚學堂的Python400集學的,學了一個多月了,基本語法都學的差不多了,還在繼續學習,感覺很有效果


Ce塞西莉婭


你好😊,無論是學習任何一門語言,基礎知識,就是基礎功非常的重要,找一個有豐富編程經驗的老師或者師兄帶著你會少走很多彎路, 你的進步速度也會快很多,無論我們學習的目的是什麼,不得不說真的是一門值得你付出時間去學習的優秀編程語言。如在選擇培訓時一定要多方面對比教學,師資,項目,就業等,慎重選擇。回答問題可以的話(給點贊求關注)謝謝!😊


分享到:


相關文章: