Python中分數的相關使用教程

2022-09-29 06:27:10 字數 2514 閱讀 7430

你可能不需要經常處理分數,但當你需要時,python的fraction類會給你很大的幫助。在該指南中,我將提供一些有趣的例項,用於展示如何處理分數,突出顯示一些很酷的功能。

1 基礎

fraction類在lib/fractions.py檔案中,所以可以這樣匯入:

from fractions import fraction

有很多種例項化fraction類的方法。

首先,你可以傳入分子和分母:

>>> fraction(1, 2)

fraction(1, 2)

或者利用另乙個分數進行例項化:

>>> f = fraction(1, 2)

>>> fraction(f)

fraction(1, 2)

使用乙個浮點數進行例項化:

>>> fraction(2.5)

fraction(5, 2)

或者使用乙個 decimal:

>>> from decimal import decimal

>>> fraction(decimal('1.1'))

fraction(11, 10)

最後一種方法,可能是最有趣的一種方法,你可以使用乙個字串例項化fraction類:

>>> fraction('9/16')

fraction(9, 16)

本質上講,fraction類這麼設計,目的就是為了讓你在例項化該類之前不需要做很多處理。fraction類知道如何處理多種不同的資料型別。

2 自動約分

約分並不是很難,但是對於一些複雜的分數,約分還是要費點事的。fraction類在這方面特別有用,因為它能自動約分分數。

>>> fraction(153, 272)

fraction(9, 16)

純粹靠想,你可能無法約分153/172,但是fraction類能很快地完成約分。

3 二元運算

你可以像對待整數和浮點數一樣,在fraction物件上執行二元運算。程式設計客棧

兩個分數進行相加操作:

>>> fraction(1, 2) + fraction(3, 4)

fraction(5, 4)

這樣操作就很方便了,但是你也可以混合整數或浮點數。如你所料,fraction物件和乙個整數進行相加返回乙個fraction物件,但和乙個浮點數進行相加返回乙個浮點數。

>>> fraction(5, 16) + 3

fraction(53, 16)

>>> fraction(5, 16) + 3.0

3.3125

這裡有一些其他的二元運算的例子:

>>> fraction(5, 16) - fraction(1, 4)

fraction(1, 16)

>>> fraction(1, 16) * fraction(3, 16)

fraction(3, 256)

>>> fraction(3, 16) / fraction(1, 8)

fraction(3, 2)

現在讓我們試試乘方操作:

>>> fraction(1, 8) ** fraction(1, 2)

0.3535533905932738

它返回乙個浮點數,可能是因為分數不能進行合理的計算。實際上我們可以使用limit_deno程式設計客棧minator方法得到乙個近似的fraction值。

>>> f = fraction(1, 8) ** fraction(1, 2)

>>> fraction(f).limit_denominator()

fraction(235416, 665857)

記住,你可以混合字串和其他上邊例項化部分中提到的資料型別。

>>> fraction("1/2") + fraction(2.0)

fraction(5, 2)

>>> fraction(2) * fraction(" 程式設計客棧 1/2 ")

fraction(1, 1)

4 獲取fraction物件的屬性

你已經有了乙個fraction物件,並且已經做了一些計算,現在我們如何訪問它的屬性呢?

不閱讀文件的話,你或許會嘗試fraction.numerator和fraction.denominator,事實證明你是正確的。

>>> f = fraction(221, 234) + fraction(1, 2)

>>> f.numerator

13>>> f.denominator

9或者作為乙個字串,列印整個分數:

>>> print f

13/9

>>> a = str(f)

>>> a

'13/9'5 gcd

這不是fraction類的一部分,它是在fractions庫中的。利用它你可以快速找到兩個數的最大公約數。

首先匯入:

from fractions import gcd

一些例子:

>>> gcd(100, 75)

25>>> gcd(221, 234)

136 總結

python 換頁 python中分頁使用

fromdjango.utils.safestring import mark safefromdjango.http.request import querydictclasspagination page 當前的頁碼數 all count 總的資料量 per num 每頁顯示的資料量 max s...

OC中分類的使用

在oc中,如果想對某個類進行方法的擴充,又不想改變原有累的方法和成員變數,可以使用分類 分類 category 基本用途 格式 inte ce 類名 分類名稱 方法宣告 end implementation 類名 分類名稱 方法實現 end 好處 給系統自帶的類新增分類 注意 示例 首先 建立乙個 ...

C 中分支的使用

分支使用 兩種分支的相同點和不同點 1 兩種都可以實現分支結構 2 if可以使用範圍進行分支處理,而switch 只能對值進行分支處理 1.if的使用和種類 if 可以巢狀使用 就是if執行體中再次進行if判斷,理論上可以無限巢狀 1 if 表示式 變數 判斷 值 是否為true,如果為true 則...