《Think Python》第7章學習筆記
阿新 • • 發佈:2018-06-03
決定 tro LG 以及 roo pre ssi 一個 span 7.3
7.4
和
[TOC]
7.1 重新賦值(Reassignment)
在 Python 中,用等號 =
進行變量賦值,但是變量賦值語句,比如 a = 3
,與數學意義上的等式不是等價的。
7.2 更新變量(Updating variables)
無
7.3 while
語句(The while
statement)
無
7.4 break
語句(break
)
無
7.5 平方根(Square roots)
在 Python 中,判斷浮點數相等是一件危險的事。大部分合理的數字(例如:\(1 / 3\))只是近似相等,而像 \(\sqrt{2}\) 這樣不合理的數字無法用浮點數正確的表示。因此,不建議檢查兩個變量 x
y
是否相等,更安全的做法是使用內建函數 abs
去計算兩個變量差值的絕對值(或者大小)。
if abs(y - x) < epsilon:
break
其中,epsilon
決定了兩個變量多接近就足夠了,可以取類似 \(0.0000001\) 這樣的值。
7.6 算法(Algorithms)
算法的特點之一就是執行過程不需要任何的“智慧”,是一種機械化的過程。每一步的執行都是由上一步根據一些簡單的規則確定的。
7.7 調試(Debugging)
減少調試時間的一種方式就是使用“折半調試”(debugging by bisection)。但是在實際中,並不總是能清晰地找出程序的“中點”,並且也沒有意義去計算行數,然後找出程序的“中點”。相反,應該多思考程序可能出現錯誤的地方,以及哪些地方容易進行檢查。然後選擇一個點,在這個點之前或者之後 bug 出現的可能性一致。
《Think Python》第7章學習筆記