何不用python_人生几何,何不Python当歌
學習Python也有一段時間了,學到了很多,從什么也不懂到入門,現在談談python怎么入門。
注意:本文沒什么邏輯,純屬個人對學習歷程的回顧。
說實話,這個話題,如果由一個在python領域工作多年對項目對語言都有自己的獨特的理解,結果會更有信服力。而我可能并不適合來回答這個問題,理由如下:
首先我的學習周期很短,
其次我在學習python語言之前并沒有強大的邏輯運算能力。
第三其實講真之前對于python我是不怎么了解的,只是看了知乎和blog感覺用Python爬蟲挺好玩,才決定學python的。
但是從另一個角度思考,我又覺得我很有資格來回答這個問題,理由如下:
作為一個python領域的編程小白(真的是小白啊),我更懂和我一樣編程零基礎(上課貪玩,大學學的其它編程課都還給大學老師了)、邏輯又不好的初學者在初次接觸python語言之時,內心的困惑和掙扎(其實python相對來說比較簡單了);按照我的學習周期及其效果來看,我的學習效果得到了自己對自己的檢驗;
我的python學習是在大學期間就開始的,而非是在職場的強壓下被逼無奈之下開始的,所以不帶很多的功利性和企圖速成的快節奏,同樣也是按需去學,所以對于基礎的把握及學習的節奏的經驗對我個人還是蠻有幫助的。
關于學習初衷:
首先我想說的是,在打算學習python之前一定要先問自己一句,你學習python的目的是什么?
是為了應對職場壓力,被動充電?亦或者僅僅一時心血來潮,看到如今的大數據或者人工智能發展的如火如荼、不由自主的來湊一波熱鬧?或者是純粹只是為了興趣、實現自己的某些想法,比如時不時爬個妹子圖....等等。
因為目標定位不同,意味著你能為此打算花費的時間長度不同、付出的心血不同、學習的路徑不同、學習的模塊不同,達到的效果也不同。
一定要確定好目標,按需去學,否則你在入門之前就首先會陷入迷茫和困惑,因為python除了內置的幾個包之外,可用的有不下上萬個包,如果再算上GitHub上 托管的個人開發的小眾包,可能有好幾萬了,掰著指頭數一數,夠學一輩子了。
關于學習過程:
第一階段:Pythoy環境搭建與配置、數據類型與變量、運算符與表達式、字符串、列表與字典、函數、面向對象編程與模塊
Python面向對象編程從零開始-從沒對象到有對象。此對象非彼對象,我們可以從面向過程和面向對象來學習面向對象。
面向過程:根據業務邏輯從上到下寫代碼。面向對象:將數據與函數綁定到一起,進行封裝,這樣能夠更快速的開發程序,減少了重復代碼的重寫過程。
面向對象(object-oriented ;簡稱: OO) 至今還沒有統一的概念 定義是:按人們認識客觀世界的系統思維方式,采用基于對象(實體) 的概念建立模型,模擬客觀世界分析、設 計、實現軟件的辦法。
面向對象編程是一種解決軟件復用的設計和編程方法。 這種方法把軟件系統中相近相似的操作邏輯和操作 應用數據、狀態,以類的型式描述出來,以對象實例的形式在軟件系統中復用,以達到提高軟件開發效率的作用。
也許這些專業術語天生很難讓人理解,我們換一種通俗易懂的想法去思考。
面向過程:自己靠雙手按照流程去解決問題。面向對象:找個對象,讓它幫你去解決問題,自己輕松了。兩者都是解決問題的一種思路,沒有哪里不對,可是總是覺得怪怪的...
面向對象是一種設計思想:
符合人們的思考習慣
把執行者變成指揮者
簡化功能,把復雜的事情簡單化
面向對象有三大特征:封裝、繼承、多態
第二階段:正則表達式、網絡編程(TCP、UDP、FTP與HTTP)、MySql數據庫
正則表達式,又稱正規表示式、正規表示法、正規表達式、規則表達式、常規表示法是計算機科學的一個概念。正則表達式使用單個字符串來描述、匹配一系列匹配某個句法規則的字符串。在很多文本編輯器里,正則表達式通常被用來檢索、替換那些匹配某個模式的文本。它是處理字符串的強大的工具,它有自己特定的語法結構,有了它,實現字符串的檢索、替換、匹配驗證都不在話下。當然對于爬蟲來說有了它,我們從html中提取我們想要的信息就非常簡單了。
其實正則表達式不是Python獨有的,它在其他編程語言中也可以使用,但是Python的re庫提供了整個正則表達式的實現,利用re庫我們就可以在Python中使用正則表達式來,在Python中寫正則表達式幾乎都是用的這個庫。
網絡編程:
TCP — 傳輸控制協議,提供的是面向連接、可靠的字節流服務。
當客戶和服務器彼此交換數據前,必須先在雙方之間建立一個TCP連接,之后才能傳輸數據。
要學習TCP,一定要知道”三次握手,四次拜拜”所謂的三次握手,就是發送數據前必須建立的連接叫三次握手,握手完了才開始發的,這也就是面向連接的意思。
UDP — 用戶數據報協議,是一個無連接的簡單的面向數據報的運輸層協議。
UDP不提供可靠性,它只是把應用程序傳給IP層的數據報發送出去,但是并不能保證它們能到達目的地。
由于UDP在傳輸數據報前不用在客戶和服務器之間建立一個連接,且沒有超時重發等機制,故而傳輸速度很快。
UDP是一種面向無連接的協議,每個數據報都是一個獨立的信息,包括完整的源地址或目的地址,它在網絡上以任何可能的路徑傳往目的地,因此能否到達目的地,到達目的地的時間以及內容的正確性都是不能被保證的。
HTTP協議是建立在TCP協議之上的一種應用。
HTTP連接使用的是“請求—響應”的方式,不僅在請求時需要先建立TCP連接,而且需要客戶端向服務器發出請求后,請求中包含請求方法、URI、協議版本以及相關的MIME樣式的消息,服務器端才能回復數據,包含消息的協議版本、一個成功和失敗碼以及相關的MIME式樣的消息。
在請求結束后,會主動釋放連接。從建立連接到關閉連接的過程稱為“一次連接”。
由于HTTP在每次請求結束后都會主動釋放連接,因此HTTP連接是一種“短連接”,要保持客戶端程序的在線狀態,需要不斷地向服務器發起連接請求。通常的做法是即時不需要獲得任何數據,客戶端也保持每隔一段固定的時間向服務器發送一次“保持連接”的請求,服務器在收到該請求后對客戶端進行回復,表明知道客戶端“在線”。若服務器長時間無法收到客戶端的請求,則認為客戶端“下線”,若客戶端長時間無法收到服務器的回復,則認為網絡已經斷開
FTP文件傳輸協議(File Transfer Protocol, FTP)是TCP/IP網絡上兩臺計算機傳送文件的協議,FTP是在TCP/IP網絡和INTERNET上最早使用的協議之一,它屬于網絡協議組的應用層。
FTP客戶機可以給服務器發出命令來下載文件,上載文件,創建或改變服務器上的目錄。
MySQL是一個關系型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬于 Oracle 旗下產品。MySQL 是最流行的關系型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關系數據庫管理系統) 應用軟件。
第三階段:web基礎,HTML、CSS、JavaScript、JQuery、Bootstrap、Ajax-數據異步交互。
學了一定的理論基礎之后,就是大量實踐 (所以從你的項目開始做吧)!
實踐中總結,實踐中完善和扎實理論(問題總是要在實踐中發現和解決,不能解決實際問題的理論就是狗屎)
最好能有個人能告訴你 你的代碼寫得有多爛...
第四階段:Django
問題:
Python是不是需要很深厚的編程基礎,我編程基礎基本為0,是不是不適合學這個?
python是腳本語言,語法簡單最容易學習,對于沒有基礎的初學者來說,學習編程最重要的是保持初心和堅持、堅持、堅持。當初怎么想起來學編程的呢?很多人都是從入門到放棄,固然有天賦的因素,缺少目的性也是一個很關鍵的因素。
個人認為學好一門語言最有效的方法就是持續不斷的進行敲敲敲(廢話),畢竟編程是個手藝活,手熟是一切的基礎,不要怕出錯,出現問題去解決問題才是我們進步最快的方法,要覺得自己不是為了當程序員,學習編程是為了解決問題,把你的問題分解細化,讓它一步一步驅動你的學習過程,學起來就沒那么難啦。
你學了,兩年后最起碼你是個25歲的程序員,牛不牛逼另說,你不學,你只是個25歲的人。
就這些吧。
最后,copy一段曾經從知乎上看到的文字,或許它真正預示著Python的未來:
大概在 2003 或者 2004 年的時候,我買過一本 Python 的書,作者是一位巴西人。他說自己之所以堅定的選擇 Python,是因為他小時候經常夢到未來世界將由一條大蟒蛇(蟒蛇的英文為python)統治。我當時覺得這哥們好可憐,做個夢都能夢到這么恐怖的場景。但今天來看,也許他只是像黑客帝國里的程序員安德森一樣,不小心穿越到未來,并且窺探到了世界的真相。
總結
以上是生活随笔為你收集整理的何不用python_人生几何,何不Python当歌的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cstring转为long64_CStr
- 下一篇: cef使用缓存_CEF 文件下载功能实现