Python3 CookBook | 数字处理
文章首發于知乎專欄,歡迎關注。
zhuanlan.zhihu.com/pythoncookb…
以下測試代碼全部基于 Python3。
數字處理一般來說都比較簡單,這篇文章主要介紹幾個常見問題和常用函數。
取整和四舍五入
使用 int() 函數取整會直接丟棄小數位,不進行四舍五入。
In [4]: int(1.63) Out[4]: 1復制代碼round() 函數會根據所帶參數確定保留的小數位數,然后輸出四舍五入后的結果。
In [6]: round(1.63) Out[6]: 2In [7]: round(1.63, 1) Out[7]: 1.6復制代碼精確的浮點數運算
浮點數計算最讓我頭疼的就是它的小誤差,這種誤差并不是每一次都會出現,有的時候想在頁面上展示一個計算結果,突然發現這個結果變成了一大長串數字,然后還要修改代碼,將這串數字格式化。
In [8]: a = 1.1In [9]: b = 1.2In [10]: a + b Out[10]: 2.3In [11]: a = 4.2In [12]: b = 2.1In [13]: a + b Out[13]: 6.300000000000001復制代碼如果想要避免這種情況可以使用 Decimal() 來進行精確計算,但這樣的問題是會有一些性能上的損耗。
In [14]: from decimal import DecimalIn [15]: a = Decimal(2.1)In [16]: b = Decimal(4.2)In [17]: a + b Out[17]: Decimal('6.300000000000000266453525910')In [18]: a = Decimal('2.1')In [19]: b = Decimal('4.2')In [20]: a + b Out[20]: Decimal('6.3')復制代碼需要注意的是,傳入的參數需要是字符串,有點奇怪。
隨機數
用 random 來生成隨機數,該模塊還提供了很多 function,特別有用。
產生[0,1)之間的隨機數。
random.random()
產生[min, max)之間的隨機整數。 random.randint(min, max)
從可迭代對象中隨機選取一個元素返回。
random.choice(iterable)
從可迭代對象中隨機選取不重復的 k 個元素,以數組的形式進行返回。
random.sample(iterable, k)
在[start, stop)中以步長 step 進行步進,隨機產生一個元素。
random.randrange(start, stop, step)
對序列進行原地隨機打亂順序,返回 None,一定要注意這是原地起作用的。
random.shuffle(l)
這里就不做具體演示了。
關于數字還有很多其他操作,比如格式化輸出,二八十六進制整數的轉換,復數運算等等,但都不是很復雜,有的可能也不常遇到。
未完待續。。。
總結
以上是生活随笔為你收集整理的Python3 CookBook | 数字处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# (类型、对象、线程栈和托管堆)在运
- 下一篇: springboot添加swagger2