日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

Python3 CookBook | 数字处理

發(fā)布時間:2025/3/19 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python3 CookBook | 数字处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章首發(fā)于知乎專欄,歡迎關(guān)注。

zhuanlan.zhihu.com/pythoncookb…

以下測試代碼全部基于 Python3。

數(shù)字處理一般來說都比較簡單,這篇文章主要介紹幾個常見問題和常用函數(shù)。

取整和四舍五入

使用 int() 函數(shù)取整會直接丟棄小數(shù)位,不進行四舍五入。

In [4]: int(1.63) Out[4]: 1復(fù)制代碼

round() 函數(shù)會根據(jù)所帶參數(shù)確定保留的小數(shù)位數(shù),然后輸出四舍五入后的結(jié)果。

In [6]: round(1.63) Out[6]: 2In [7]: round(1.63, 1) Out[7]: 1.6復(fù)制代碼

精確的浮點數(shù)運算

浮點數(shù)計算最讓我頭疼的就是它的小誤差,這種誤差并不是每一次都會出現(xiàn),有的時候想在頁面上展示一個計算結(jié)果,突然發(fā)現(xiàn)這個結(jié)果變成了一大長串?dāng)?shù)字,然后還要修改代碼,將這串?dāng)?shù)字格式化。

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復(fù)制代碼

如果想要避免這種情況可以使用 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')復(fù)制代碼

需要注意的是,傳入的參數(shù)需要是字符串,有點奇怪。

隨機數(shù)

用 random 來生成隨機數(shù),該模塊還提供了很多 function,特別有用。

產(chǎn)生[0,1)之間的隨機數(shù)。

random.random()

產(chǎn)生[min, max)之間的隨機整數(shù)。 random.randint(min, max)

從可迭代對象中隨機選取一個元素返回。

random.choice(iterable)

從可迭代對象中隨機選取不重復(fù)的 k 個元素,以數(shù)組的形式進行返回。

random.sample(iterable, k)

在[start, stop)中以步長 step 進行步進,隨機產(chǎn)生一個元素。

random.randrange(start, stop, step)

對序列進行原地隨機打亂順序,返回 None,一定要注意這是原地起作用的。

random.shuffle(l)

這里就不做具體演示了。

關(guān)于數(shù)字還有很多其他操作,比如格式化輸出,二八十六進制整數(shù)的轉(zhuǎn)換,復(fù)數(shù)運算等等,但都不是很復(fù)雜,有的可能也不常遇到。

未完待續(xù)。。。

總結(jié)

以上是生活随笔為你收集整理的Python3 CookBook | 数字处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。