《笨辦法學 python3》系列練習計劃——3. 數字和數字計算
阿新 • • 發佈:2019-02-19
是的我把第二題吃了
題目
和大多數程式語言一樣 python 可以進行數學運算,本題是使用數字以及運算子號
符號 | 運演算法則 |
---|---|
+ | 加法 |
- | 加法 |
/ | 除法 |
% | 取餘 |
// | 整除 |
* | 乘法 |
** | 冪運算 |
< | 小於 |
> | 大於 |
<= | 小於等於 |
>= | 大於等於 |
加分要求
- 使用
#
在程式碼每行前寫一個註解,說明下面程式碼的作用 - 在命令符(終端、shell)中執行 python 使用運算子把python當作計算器用
- 用
.py
- 所有結果有“錯”麼?瞭解為何基礎練習中沒有小數。搜尋“浮點數”是什麼。
- 用浮點數重寫
ex3.py
,讓它的計算結果更準確。
我的答案
3.0. 基礎練習 + 3.1. 加註解
# 列印一行字 “我將要計算我擁有多少雞”
print("I will now count my chickens:")
# 列印並計算母雞的數量
print("Hens", 25 + 30 / 6)
# 計算公雞的數量
print("Roosters", 100 - 25 * 3 % 4)
# 列印一行字 “現在我要計算雞蛋的數量了”
print("Now I will count the eggs:" )
# 計算雞蛋的數量
print(3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6)
# 判斷 3+2 是否小於 5-7
print("Is it true that 3 + 2 < 5 - 7?")
print(3 + 2 < 5 - 7)
# 加法、減法運算
print("What is 3 + 2?", 3 + 2)
print("What is 5 - 7?", 5 - 7)
# 作者賣萌
print("Oh, that's why it's False")
# 判斷大小
print("Is it greater?", 5 > -2)
print("Is it greater or equal?" , 5 >= -2)
print("Is it less or equal?", 5 <= -2)
黃色部分是和 python2 版結果不同的地方,原因見加分4題的說明。
3.3. 計算下載需要的時間
print("檔案大小是1G,下載頻寬是4M下水管,計算下載用幾分鐘:")
print(1024000 / ((4 * 1024) / 8) / 60)
(4 * 1024):4M 的準確頻寬 = 4096 Kb/s。
/ 8:換算頻寬 Kb/s 到 KB/s
1G = 1024000 KB
應該是無限333迴圈的,但小數最後一位不太對。why?請看3.4
3.4. python 的計算錯誤和浮點數
- 浮點數,簡單說就是有小數部分的數例如 3.0。
- python2 在處理除法運算時整數相除只能保留整數部分,若想保留小數部分需要使用浮點數相除。python3 則可以正確處理。
目前瞭解的是所有常見的程式語言在十進位制浮點數運算時都會遇到不準確的問題,python會盡力找一種精確的結果來顯示,不過好在我們有其他辦法獲得更精確的十進位制浮點數。
3.4.1. 如何精確 python 浮點數
python預設的浮點數是17位,我們通常用不到這麼多,這樣可以使用python內建函式
round()
或 格式化字元兩種方式來精確小數位。而如果需要更多位數則可以考慮用 decimal 模組