標籤:

跟黃哥學習python第二章

為啥你看了很多書,很多免費視頻,還是不能自己寫代碼。

學習編程不能只學習語法,看一些照著PPT念,夸夸其談的只講語法的視頻,這是你還不能自己寫代碼的原因。學習編程要學習解決問題的方法,學習演算法,學習編程思路。

何為演算法

在數學和計算機科學之中,演算法為一個計算的具體步驟,常用於計算、數據處理和自動推理。 精確而言,演算法是一個表示為有限長列表的有效方法。演算法應包含清晰定義的指令用於計算函數 。 演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和初始輸入開始, 經過一系列有限 而清晰定義的狀態最終產生輸出 並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。 隨機化演算法在內的一些演算法,包含了一些隨機輸入。 形式化演算法的概念部分源自嘗試解決希爾伯特提出的判定問題,並在其後嘗試定義有效計算性或者有效方法中成形。 --來自維基百科

計算思維

計算思維(Computational Thinking)概念的提出是計算機學科發展的自然產物。 第一次明確使用這一概念的是美國卡內基·梅隆大學周以真(Jeannette M. Wing)教授。 計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為; 計算思維最根本的內容,即其本質是抽象和自動化。 2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M. Wing)教授在美國計算機權威期刊《Communications of the ACM》雜誌上給出, 並定義的計算思維(Computational Thinking)。 周教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計、以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。 以上是關於計算思維的一個總定義,周教授為了讓人們更易於理解,又將它更進一步地定義為: 通過約簡、嵌入、轉化和模擬等方法,把一個看來困難的問題重新闡釋成一個我們知道問題怎樣解決的方法; 是一種遞歸思維,是一種並行處理,是一種把代碼譯成數據又能把數據譯成代碼, 是一種多維分析推廣的類型檢查方法; 是一種採用抽象和分解來控制龐雜的任務或進行巨大複雜系統設計的方法,是基於關注分離的方法(SoC方法); 是一種選擇合適的方式去陳述一個問題,或對一個問題的相關方面建模使其易於處理的思維方法; 是按照預防、保護及通過冗餘、容錯、糾錯的方式,並從最壞情況進行系統恢復的一種思維方法; 是利用啟發式推理尋求解答,也即在不確定情況下的規劃、學習和調度的思維方法; 是利用海量數據來加快計算,在時間和空間之間,在處理能力和存儲容量之間進行折衷的思維方法。

何為程序設計

計算機程序設計(英語:Computer programming),或稱程序設計(programming),是給出解決特定問題程序的過程,軟體開發過程中的重要步驟。程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。程序設計過程應包括分析、設計、編碼、測試、除錯等不同階段。在計算機技術發展的早期,軟體開發主要就是程序設計。但隨著技術的發展,軟體系統越來越複雜,逐漸分化出許多專用的軟體系統,如操作系統、資料庫系統、應用伺服器,而且這些專用的軟體系統愈來愈成為普遍的系統環境的一部分。這種情況下軟體開發的內容越來越豐富,不再只是純粹的程序設計,還包括資料庫設計、用戶界面設計、通信協議設計和複雜的系統配置過程。專業的程序設計人員被稱為程序員。某種意義上,程序設計的出現甚至早於電子計算機的出現。英國著名詩人拜倫的女兒愛達·勒芙蕾絲曾設計了巴貝奇分析機上計算伯努利數的一個程序。她甚至還創建了循環和子程序的概念。由於她在程序設計上的突破性創新,愛達·勒芙蕾絲被稱為世界上第一位程序員。任何設計工作都是在各種條件限制和相互矛盾的需求之間尋求一種平衡。這種觀點反映在程序設計上,就是硬體存儲空間與程序運行時間的限制。空間方面,在計算機技術發展的早期,由於機器資源比較昂貴,如何縮小存儲空間往往是設計關心的首要重點;而隨著硬體技術的飛速發展,電腦上數據存儲媒體的價格降低,空間不再是考慮的第一要點,一些較耗時的運算也漸漸發展出以空間換取時間的模式。時間方面,在早期,如何加強程序效率、縮短程序運行時間是程序員的共同目標;而在硬體性能進步、效率差距縮小,軟體規模與複雜度卻日益增加的現在,程序的結構、可維護性、重複使用性、彈性等因素更顯得重要。在多人合作的程序設計項目里,程序員們會加上各種註解以協助其他參與者理解代碼,此行為不但對運行時間沒有幫助,還會加重存儲空間的負擔,但卻因能達到較好的溝通並提高代碼的可維護性,而成為目前的主流。然而,隨著智能手機等攜帶設備的興起,運行時間的縮短與存儲空間的有效運用再次成為焦點,形成與主機伺服器類型應用程序重點不同的考慮方向。--來自維基百科

程序設計中的錯誤

1、語法錯誤

沒有按照python語法來書寫代碼,產生的錯誤,這個就是語法錯誤。語法錯誤能被python解析器捕獲。 python的報錯提示信息太友好了,能指定報錯信息的代碼行和具體錯誤,初學者要慢慢習慣看報錯信息提示, 排除語法錯誤。 下面是一個典型的語法錯誤,python 3 中print已經改為函數,需要帶括弧調用。

2、邏輯錯誤

代碼運行輸出的結果不是預期的結果。例如:計算1+1 應該是輸出2,但代碼輸出結果是3,這個就是邏輯錯誤。

3、運行時錯誤

不報語法錯誤,但在運行中報錯,這種就是運行時錯誤。 例如:寫的爬蟲代碼,沒有處理異常,當讀到不存在的url時,報運行時錯誤。

第一個程序 helloworld.py

運行第一個程序有多種方式

1、可以在python shell 中直接輸入

>>> "hello world"

"hello world"

2、可以寫成文件helloworld.py

3、hello world 代碼注意事項

#! /usr/bin/python 這行代碼指定你的python解析器的位置,對類unix操作系統有效,windows下可以不用這行代碼。 # coding:utf-8 是指定代碼的編碼,這個先不用管它,如果是python 2照著寫,如果是python 3,可以不需要這行。 上圖第4行代碼,print("hello world"),這個是print 在python 3中是函數,python 2中print是 print語句, 可以用括弧或不用括弧,python 3必須要用括弧,這個是初學python 3的朋友,經常會碰見的一個問題。 "hello world" 是字元串,這個照著寫,後面會講到。

這個hello world 程序,建議初學者,學習過程中,print()函數後面少一個括弧print("hello world",看看 報錯信息,體驗一下python 友好的報錯提示。你也可以字元串只輸入一個引號,試試,總之要動手。 只有動手才會找到感覺。

跟黃哥學習python第三章

點擊黃哥python培訓試看視頻播放地址

黃哥python遠程視頻培訓班

推薦閱讀:

可能是最全面的75個Python爬蟲資源
爬蟲入門到精通-mongodb的基本使用
[18] Python元組
一步一步教你用Python畫出專業的K線圖
如何看待微軟 Pyjion 的進展以及 CPython 性能優化的未來?

TAG:Python |