Fraction函數(shù)是python中實(shí)現(xiàn)分?jǐn)?shù)的一個(gè)模塊(module),模塊是由別人寫的,并且可以被拿來直接使用的代碼程序,包括類、函數(shù)以及標(biāo)簽的定義,是python標(biāo)準(zhǔn)函數(shù)庫的一部分。使用是必須先插入模塊。
>>> from fractions import Fraction #插入模塊
>>> f =Fraction(1,2) #創(chuàng)建Fraction 類,并初始化為1/2
>>> f #輸出分?jǐn)?shù)類對象Fraction(1, 2)
輸入分?jǐn)?shù)時(shí),F(xiàn)raction開頭字母必須大寫,否則會報(bào)錯(cuò)。我們對分?jǐn)?shù)進(jìn)行運(yùn)算。
>>> Fraction(2,8)+1+1.5
2.75
運(yùn)算中如果出現(xiàn)float數(shù)據(jù)類型,最終的結(jié)果將是float類型數(shù)據(jù)。如果運(yùn)算式中只有integer類型和fraction類型,輸出結(jié)果將死fraction類型。
>>> Fraction(2,8)+Fraction(2,5)+3
Fraction(73, 20)
Fraction()方法,非常有意思,可以直接接收分?jǐn)?shù)字符串變成輸入。注意輸入的分?jǐn)?shù)要加引號。
>>> a = Fraction('1/5')
>>> a
Fraction(1, 5)
>>>
直接輸入小數(shù),F(xiàn)raction方法直接把小數(shù)變成分?jǐn)?shù)。
>>> from decimal import Decimal
>>> Fraction(1.1)
Fraction(11, 10)
把字符串變成小數(shù),需要用到decimal類,然后把小數(shù)變成分?jǐn)?shù)。
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)
先把1.1字符串變成小數(shù),然后在變成分?jǐn)?shù)。
擴(kuò)展:
Python: 分?jǐn)?shù)運(yùn)算
fractions 模塊可以被用來執(zhí)行包含分?jǐn)?shù)的數(shù)學(xué)運(yùn)算
>>> from fractions import Fraction
>>> a = Fraction(5, 4)
>>> b = Fraction(7, 16)
>>> print(a + b)
27/16
>>> print(a * b)
35/64
>>> # Getting numerator/denominator
>>> c = a * b
>>> c.numerator
35
>>> c.denominator
64
>>> # Converting to a float
>>> float(c)
0.546875
在大多數(shù)程序中一般不會出現(xiàn)分?jǐn)?shù)的計(jì)算問題,但是有時(shí)候還是需要用到的。比如,在一個(gè)允許接受分?jǐn)?shù)形式的測試單位并以分?jǐn)?shù)形式執(zhí)行運(yùn)算的程序中,直接使用分?jǐn)?shù)可以減少手動轉(zhuǎn)換為小數(shù)或浮點(diǎn)數(shù)的工作
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

