- Python編程基礎與數據分析
- 王娟 華東 羅建平
- 1438字
- 2020-09-11 16:42:28
1.1 計算機編程語言
計算機具備實現重復性、固定程式的大量計算能力,實際生活中使用計算機處理一個具體問題,就是去發現問題、創造性地思考解決方案以及清晰準確地表達解決方案的過程。這個過程最終需要有一個解決該問題的程序,一般包括兩個部分:如何從一個解決問題的需求出發,逐步開發出一個計算過程使其自動執行;如何選擇使用一種編程語言優雅地寫出解決問題的程序,實現問題的計算過程。
編程語言是人與計算機交流的工具,是人們為了表達計算過程而設計出來的形式語言,經過編譯器翻譯成計算機可識別的機器指令,因此編程語言既要反映思維的易于使用的特點,也要反映計算機的高效計算的特點。
編程語言包括機器語言、匯編語言、高級語言。機器語言規定了計算機的特定動作,計算機制造時支持CPU、內存與外設IO等操作的機器語言;為了解決使用機器語言編寫應用程序所帶來的不容易記憶等一系列問題,發明了用助記符號來表示計算機指令的語言,也就是匯編語言;相對簡單、直觀、易理解、不容易出錯的高級編程語言是一類接近于人類自然語言與數學語言的程序設計語言統稱,按照設計方式不同,分為面向過程和面向對象的語言,比如C、C++、Java、Python、Julia等。
1.1.1 程序開發過程
程序開發就是針對具體問題,設計編寫可以解決問題的專用程序的過程。實際問題一般不清晰、不明確,不是計算機可以識別與計算的問題,需要通過計算機思維方式對實際問題進行建模、編程,最終形成計算機算法與操作指令的精確描述,兩者之間有著非常大的距離。因此,一般程序開發分為以下幾個步驟,且不斷迭代循環。
(1)分析階段:程序開發的第一步是深入分析問題,弄清需求說明和相關細節,最終得到一個盡可能嚴格表述的問題描述,軟件過程中通常稱為需求分析。
(2)設計階段:問題的求解是尋找一個能解決該問題的計算過程模型,一般包括兩部分,需要表示計算處理的對象數據,及求解問題的計算方法,即通常所說的算法。
(3)編碼階段:確定了解決問題的抽象計算模型后,選用一種合適的計算機編程語言實現這個模型,充分利用編程語言特性實現數據結構、設計模式、控制指令等。編碼完成后,選用對應語言的編譯器進行編譯形成目標程序,最后連接程序得到可在機器上運行的執行程序。
(4)測試階段:程序完成后功能是否正常,一般需要通過白盒、黑盒與灰盒測試方法嘗試性地驗證程序功能是否符合需求,程序運行中可能出現動態運行錯誤,需要回到編碼甚至是設計階段去消除這種錯誤,然后不斷反復迭代,直至得到運行正常的程序。
(5)發布階段:運行正常的程序可發布試運行,穩定后正式上線。運行中碰到某些特定場景或數據輸入時,會出現運行錯誤,需及時完善消缺。
編碼階段往往可選擇程序員熟悉的編程語言或適合該類場景需求特性的編程語言,例如要用Python作為編程語言來解決數據分析問題,就需要把已經建立的抽象數據模型映射到Python語言表示的數據結構,把實際問題的抽象求解過程映射到用Python語言描述的計算過程。Python語言具有大量的科學計算包,也成為人工智能數據分析的首選語言。
1.1.2 一個簡單示例
示例1.1.1_Multiplication.py的功能是打印九九乘法口訣表:
##打印九九乘法口訣表 for i in range (1, 10) : ##i表示乘法口訣的行號, 取值 [1, 10) for j in range (1, i+1) : ##j表示乘法口訣的列號, 取值 [1, i+1) s="%d*%d=%d"% (i, j, i*j) ##獲取類似1*1=1的乘法算式字符串 print ("%-8s"%s, end="") ##將乘法算式以8個字符寬度左對齊打印, 不換行 print ( ) ##每行結束換行
程序輸出結果如下:
1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
注:“#”字符表示從該字符開始至行末為代碼的注釋,不執行。
- 程序員面試筆試寶典(第3版)
- PHP基礎案例教程
- 秒懂設計模式
- Python機器學習實戰
- 琢石成器:Windows環境下32位匯編語言程序設計
- 算法訓練營:提高篇(全彩版)
- Instant Ext.NET Application Development
- 數據結構案例教程(C/C++版)
- Visual Basic程序設計教程
- Visualforce Developer’s guide
- Frank Kane's Taming Big Data with Apache Spark and Python
- 區塊鏈國產化實踐指南:基于Fabric 2.0
- Android Game Programming by Example
- PHP+MySQL動態網站開發從入門到精通(視頻教學版)
- 人人都能開發RPA機器人:UiPath從入門到實戰