平方根
迴圈常用於計算數值的程式中,這類程式一般從乙個大概的值開始,然後迭代式的進行改進
例如,牛頓法是計算平方根的一種方法
當我們想求a的平方根時,從任意乙個估算值開始x,利用下面的公式可以計算出更為精確地估算值
y = (x + a/x)/2
得到的y的值會更加接近平方根的真實值,不斷的用y去代替x,利用這個式子多次運算,當估算值不在變動的時候,我們基本就得到了正確的答案,也就是當y == x時,就可以停止運算了
while
true
:print
(x) y =
(x + a/x)/2
if y==x:
break
x = y
但是對於某些情況,兩個浮點數的相等比較是比較危險的
浮點數只能大約表示,大多數有理數,如1/3,以及無理數,
很多數是不能精確表示的
所以講判斷x y是否相等,使用內建函式abs來計算二者之差的絕對值比較安全
if
abs(y-x)
< epision:
break
這裡變數epision就是乙個由自己確定的,決定精度的值
演算法牛頓法就是乙個演算法
它是解決一類問題的計算機制
例:為了計算n和9的乘積,可以把n - 1作為乘積的第一位數,再把10-n作為乘積的第二位數,從而得到它們的乘積。這是一種普遍解法,就是一種演算法
演算法的特點之一就是不需要過多的腦力計算
演算法是乙個機械的過程,每一步都是依據一組簡單的規則跟著上一步來執行的
除錯減少除錯時間的乙個方法就是「對分除錯」
試著將問題拆為兩半,在**中間部分,尋找乙個可以檢查的中間值
字串字串不像整數,浮點數和布林型。字串是乙個序列,這就意味著它是其他值的乙個有序的集合。
字串是乙個序列
字串是由字元組成的序列。可以用括號運算子一次訪問乙個字元
fruit =
'banana'
letter = fruit[
1]
括號中的表示式被稱作索引,索引指出在序列中想要哪個字元
索引是從字串起點開始的位移量,第乙個字母的位移量就是0
也可以用乙個包含變數名和運算子的表示式作為索引
i =
1fruit[i]
fruit[i+
1]
索引必須使用整數
lenlen是乙個內建函式,其返回字串中的字元數量
fruit =
'banana'
len(fruit)
可以通過len獲得最後乙個字元
length =
len(fruit)
last = fruit[length-
1]
或者也可以使用負索引,即從字串的結尾往後數,表示式fruit[-1]返回最後乙個字元,fruit[-2]返回倒數第二個字元,以此類推
使用for迴圈遍歷
編寫遍歷的方式之一是使用while迴圈
index =
0while index <
len(fruit)
: letter = fruit[index]
print
(letter)
index = index+
1
被訪問的最後乙個字元的索引是長度減一
另一種方法是使用for迴圈
for letter in fruit:
print
(letter)
每次迴圈時,字串中的下乙個字元被賦值給變數letter。迴圈繼續,直到沒有剩餘的字串了
使用拼接和for迴圈
prefixes =
'jklmnopq'
suffix =
'ack'
for letter in prefixes:
print
(letter+suffix)
字串切片
字串的乙個片段被稱為切片
s =
'monty python's[0
:5]
[n:m]操作符返回從第n個字元到第m個字元的字串片段,包括第乙個,但是不包括最後乙個。
如果生了第乙個索引(冒號前面的值),切片起始於字串頭部。如果你省略第二個索引,切片一直到字串結尾
如果第乙個索引大於或等於第二個,結果是空字串,用兩個引號表示 』 』
乙個空字串不包括字元而且長度為0,但除此之外,它和其他任何字串都一樣
字串是不可變的
greeting =
'hello world'
greeting[0]
='j'
會報錯,因為字串是不可變的,不能改變乙個已存在的字串的
只能建立乙個新的字串,在原有的字串的基礎上略有變化
new_greeting =
'j'+ greeting[1:
]
think python學習筆記(5)
鏈式條件 當有多個可能的時候,我們需要多個分支 表示這種情況的方法之一是鏈式條件 if x y print 0 elif xprint 1 else print 2 elif是else if的縮寫,elif語句數目沒有限制,如果只有乙個else1從句,那麼這個從句必須在最末,但這個語句並不是必須的 ...
think python學習筆記(6)
增量式開發 面對複雜的程式,可以採用增量式開發 增量式開發的目標是通過每次只增加和測試少量 來避免長時間的除錯 這種開發而關鍵在於 1.從乙個能執行的程式開始,每次只增加少量改動 2.用臨時變數儲存中間值,便於檢查 3.刪除腳手架 組合寫乙個函式,接受兩個點作為引數,分別是圓心和圓周上一點,然後計算...
think python學習筆記(12)
字典和列表 在字典中,列表可以作為值出現。例如,當倒轉字典的時候,可能有的鍵對應的值,就是由列表組成的 def invert dict d inverse dict for key in d val d key if val not in inverse inverse val key else i...