如何從零開始學習Python【小白入門】
- 2020 年 8 月 25 日
- AI
字幕組雙語原文:如何從零開始學習Python【真·小白入門】
英語原文:Learn Python From Scratch, With One Article
翻譯:雷鋒字幕組(贇瑾和鳴、Danielan、求求你了救救孩子)
我應該怎麼開始呢?
別著急,我們需要先知道Python是什麼。我可不太喜歡沒有什麼解釋的大詞。
簡單來說,Python就是一種你告訴電腦應該怎麼做的方法。你也許會問,電腦怎麼聽得懂英語呢?
Python有個編譯器,會在運行的時候讀取你的程式碼。然後再將其轉換為電腦操作,有關開源的部分,我稍後再說。
Hello World!
寫下Hello World是你在學任何程式語言時做的第一件事,除了讓你對第一次程式碼運行感到興奮,它也會幫你檢測目前運行環境是否正常。
我們第一個運行的程式!
重點
可讀性–我們注意到列印指令用的是「print」,這也許很明顯,但是相信我,在別的程式語言中,會很麻煩,比如「 System.out.println(要列印的文本) 」
這種命令結構很重要,print是一個函數,一個在電腦世界中接受輸入的函數,同時它也生成輸出,這個函數不會返回任何東西,但是它會將任何你想要的東西列印到螢幕上。
變數
變數是編程的磚瓦,有些是系統內置的標準變數,如數字,字元串,列表值,有些則是自定義,我們會在文章的最後一起創建自定義變數。
變數就像一個容器,是一個代表一個或多個值的名稱。重點是,它真的就是一個容器而已!
數字
現在變數的意義應該不言自明了吧,聲明一個變數就是將某個值賦予該變數,如果要作冪(乘方)的話只需要用「*」。運算順序就像初中數學一樣,從左往右寫,括弧內優先。先乘除,後加減,注意順序,這很重要!
字元串
現在字元串應該是一個更廣泛的話題了,函數的個數是無限的,但是基本內容都在這了,添加字元串只是合併起來,你可以在字元串變數中觀察其子字元串,利用切片,確定位置(比如從0-2或者任何你喜歡的範圍)。
「len」函數會顯示一個對象的長度,通過這種方式,我們可以從初始字元串提取「Hello World」這一子字元串。請讀者好好思考一下,我並不想填鴨式地給你們灌輸內容,這會毀了整個學習體驗的。
列表,元組,字典和集合
列表在儲存和操作大量數據方面又快又好,是在Python中最常用的一個對象。
記住絕大多數情況下,對於列表的操作改變的是其本身,簡單的複製列表(淺拷貝)並非真正複製(深拷貝),這有些超前了,但是如果你想拷貝一個列表,請這樣做:
(上述操作第二行事實上拷貝的是儲存地址,lst3和lst本質上是一個對象;第三行拷貝的是值,而不是儲存地址)
相信我,之後你會感謝我的!
元組,集合和字典有很多可以介紹,但是篇幅有限,我會介紹一些基本用法。
計數用字典;元組防止值被篡改;集合不允許出現重複的值並且處理數據很快。
這裡是一些簡潔明了的小技巧!
Python的collections模組是個被低估的庫,它能助你的編程水平更上一層樓
如果你沒有做過任何大型開發應用,程式碼效率應該不會嚇到你,用列表作為起步剛好。
流程式控制制
流程式控制制只是if-else語句的一個花哨名稱
Elif-僅當在if語句為假時執行。
縮進,縮進,縮進!
我不能再強調Python中的新開發人員僅僅因為這個原因而犯了多少錯誤,這四個空格決定了語句塊,注意print語句在if塊中的位置,如果將它從if程式碼塊中移走的話,if語句什麼都不會做。
另一個重要的地方,==不賦值,它只能計算出True和False。
「elif」只在if語句失敗時出現,它是為了避免在數字大於5時進行測試然後在數字大於8(只是個例子)的時候再次測試。
將and和or組合是個檢查多個語句的方法。
循環和迭代
你可以在列表,元祖,字典甚至字元串中進行迭代,以下是它怎麼實現的:
循環能讓你重寫多次任何你想寫的。你只需要寫一次,然後讓程式碼在那你想要的次數之後停下來就可以了(例如while loop)
或者你想以迭代的形式每次只處理一個數據,可以使用上圖中animel的方法。
函數
今日的內容即將接近尾聲,請集中注意力。
函數需要輸入,並對輸入做一些操作,之後回送給用戶回饋——也即輸出。
如果你能記住這句話,那麼這就是你將要做的大部分工作。
函數讓我們可以一遍又一遍地行使多個操作,而不用重複敘述。並且,它使得程式碼的可讀性提升了,當你讀到這行程式碼——if test_even,很好理解,這個函數就是檢查一個數是否是偶數。這種方式讓讀者可以更好地理解你寫得程式碼。可讀性十分重要。
類
現在類是自定義對象的構成要素,把它看作是一個建築藍圖,它將教你如何建造一個建築。
你可以根據這個藍圖建造兩個建築,它們都是一個建築,但不是同一個建築,這很重要,一個類描述的是一個事物,一個對象,但它不是對象本身。
OOP(面向對象編程)是一個深刻而先進的主題,第一段代表了它的基本概念,但它是一個值得一系列文章去探討的問題,而不是一篇文章。
現在一個對象有兩個主要的特徵,它們是屬性和函數(方法),「它是什麼和它能做什麼。「
最後一件事,藍圖是Cat類,使用這個類我可以創建對象(cats),如下所示。
self屬性指的是對象,而不是類,基本上說,是這個貓的年齡,或者是這個貓的性別,所以它叫self,它指的是對象。
我們可以創建像play這樣的自定義函數,在這種情況下,它做不了什麼,但是我們也可以重寫內置的python函數,比如add(在本例中,我讓它們產生了一個新的cat對象)或__repr__來替換print函數。
這個解釋只是冰山一角,但你必須從某個地方入門。
結論
儘管我知道這篇文章還有很多東西要寫,我的意思是-非常多,但是如果你給予足夠的關注,它可以在短時間內教會你Python的基本原理,這樣,你可以深入到更高級的主題中。
也許完全改變了你的職業生涯,把你所做的一切工作自動化,這篇文章也許只是一小步,但卻是一個非常需要的步驟!
希望你喜歡!
雷鋒字幕組是一個由 AI 愛好者組成的翻譯團隊,匯聚五百多位志願者的力量,分享最新的海外AI資訊,交流關於人工智慧技術領域的行業變革與技術創新的見解。
團隊成員有大數據專家、演算法工程師、影像處理工程師、產品經理、產品運營、IT諮詢人、在校師生;志願者們來自IBM、AVL、Adobe、阿里、百度等知名企業,北大、清華、港大、中科院、南卡羅萊納大學、早稻田大學等海內外高校研究所。
如果,你也是位熱愛分享的AI愛好者。歡迎與雷鋒字幕組一起,學習新知,分享成長。
雷鋒網雷鋒網