讀書筆記-Python科學程式設計入門(A Primer on Scientific Programming with Python)(第五版)-第一章
阿新 • • 發佈:2018-12-14
第一章-用公式計算(Computing with Formulas)
通過和數學公式有關的例子,介紹變數(variable)、物件(object)、模組(module)和文字格式化(text formatting)相關的概念。
1.1-與程式設計的初遇:一個公式
用Python表達垂直自由落體公式。
較為完美的表達方式:
v0 = 5
g = 9.81
t = 0.6
y = v0*t - 0.5*g*t**2
print y
- 加減乘除運算子分別為 + - * / ,冪次為**,比如,t的平方表示為t**2
- 用程式的語言編寫程式,比如,輸出命令是print,不要寫成write
- 運用變數,比如,v0、g、t和y,既容易修改引數,又簡潔美觀,便於查錯
- 變數名區分大小寫,可由英文字母、下劃線和阿拉伯數字組成,但變數名不能用數字開頭
- 變數名簡明扼要,不要過於冗長,也不要過於隨意,儘量運用待解決問題中自帶的名稱
- 變數名不能用Python的保留名稱(Reserved Words),這些名稱具有特殊意義,比如:
and, as,assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, with, while
initial_velocity = 5 acceleration_of_gravity = 9.81 TIME = 0.6 VerticalPositionOfBall = initial_velocity*TIME - \ 0.5*acceleration_of_gravity*TIME**2 print VerticalPositionOfBall
- 在這段程式碼中,變數名過於冗長了,顯得很亂
- \ 表示程式換行,注意, \ 後沒有空白符
- 註釋可以對程式進行補充說明,以 # 開頭,例如:
v0 = 5 # initial velocity
- 若程式出現了非英文字元,需在程式第一行加入以下程式碼,否則會報錯:
# -*- coding: utf-8 -*-
雖然這段程式碼是 # 開頭,但是程式會執行
格式化輸出的兩種表示形式:
print ’At t=%g s, the height of the ball is %.2f m.’ % (t, y)
print ’At t={t:g} s, the height of the ball is {y:.2f} m.’.format(t=t, y=y)
- 輸出結果的形式為:
At t=0.6 s, the height of the ball is 1.23 m.
- 第一種表達中, ' ' 內表示要輸出的內容,其間的%是引數標記,會按照順序將最後括號內的變數值依次填入
- 第二種表達中, ' ' 內表示要輸出的內容,期間由{x:y}替代%開頭的引數標記、
- ' ' 單引號可由 " " 雙引號替代
- %開頭的引數標記意義如下:
格式 意義 %s 一個字串 %d 一個整數 %0xd 一個整數,如果長度小於x,則在開頭補0,補足為止 %f 帶6個小數的十進位制數 %e 科學計數法,用e表示10的冪次,如,200表示為2e+2 %E 科學計數法,用E表示10的冪次,如,200表示為2E+2 %g 長度較長時,則用科學計數法,用e表10的冪次;較短則不用 %G 長度較長時,則用科學計數法,用E表10的冪次;較短則不用 %xz 若z的長度小於x,則在開頭補空格,補足為止 %-xz 若z的長度小於x,則在末尾補空格,補足為止 %.yz 使z小數點後有y個數 %x.yz 使z小數點後有y個數,若長度不超過x,則在開頭補空格,不足為止 %% 表示%本身
- 若在輸出中需要換行,有兩種表達方式:
print """y(t) is the position of our ball."""
print ’y(t) is\nthe position of\nour ball’
1.2-計算機科學術語
待續