一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術(shù)及教程分享平臺!
分類導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python中分?jǐn)?shù)的相關(guān)使用教程

Python中分?jǐn)?shù)的相關(guān)使用教程

2020-05-25 09:31tyler Python

這篇文章主要介紹了Python中分?jǐn)?shù)的相關(guān)使用教程,主要涉及分?jǐn)?shù)的計算、約分等簡單操作,是Python學(xué)習(xí)過程當(dāng)中的基礎(chǔ),需要的朋友可以參考下

你可能不需要經(jīng)常處理分?jǐn)?shù),但當(dāng)你需要時,Python的Fraction類會給你很大的幫助。在該指南中,我將提供一些有趣的實(shí)例,用于展示如何處理分?jǐn)?shù),突出顯示一些很酷的功能。
1 基礎(chǔ)

Fraction類在Lib/fractions.py文件中,所以可以這樣導(dǎo)入:
 

?
1
from fractions import Fraction

有很多種實(shí)例化Fraction類的方法。

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

?
1
2
>>> Fraction(1, 2)
Fraction(1, 2)

或者利用另一個分?jǐn)?shù)進(jìn)行實(shí)例化:
 

?
1
2
3
>>> f = Fraction(1, 2)
>>> Fraction(f)
Fraction(1, 2)

使用一個浮點(diǎn)數(shù)進(jìn)行實(shí)例化:
 

?
1
2
>>> Fraction(2.5)
Fraction(5, 2)

或者使用一個 decimal:
 

?
1
2
3
>>> from decimal import Decimal
>>> Fraction(Decimal('1.1'))
Fraction(11, 10)

最后一種方法,可能是最有趣的一種方法,你可以使用一個字符串實(shí)例化Fraction類:
 

?
1
2
>>> Fraction('9/16')
Fraction(9, 16)

本質(zhì)上講,F(xiàn)raction類這么設(shè)計,目的就是為了讓你在實(shí)例化該類之前不需要做很多處理。Fraction類知道如何處理多種不同的數(shù)據(jù)類型。
2 自動約分

約分并不是很難,但是對于一些復(fù)雜的分?jǐn)?shù),約分還是要費(fèi)點(diǎn)事的。Fraction類在這方面特別有用,因?yàn)樗茏詣蛹s分分?jǐn)?shù)。
 

?
1
2
>>> Fraction(153, 272)
Fraction(9, 16)

純粹靠想,你可能無法約分153/172,但是Fraction類能很快地完成約分。
3 二元運(yùn)算

你可以像對待整數(shù)和浮點(diǎn)數(shù)一樣,在Fraction對象上執(zhí)行二元運(yùn)算。

兩個分?jǐn)?shù)進(jìn)行相加操作:
 

?
1
2
>>> Fraction(1, 2) + Fraction(3, 4)
Fraction(5, 4)

這樣操作就很方便了,但是你也可以混合整數(shù)或浮點(diǎn)數(shù)。如你所料,F(xiàn)raction對象和一個整數(shù)進(jìn)行相加返回一個Fraction對象,但和一個浮點(diǎn)數(shù)進(jìn)行相加返回一個浮點(diǎn)數(shù)。
 

?
1
2
3
4
>>> Fraction(5, 16) + 3
Fraction(53, 16)
>>> Fraction(5, 16) + 3.0
3.3125

這里有一些其他的二元運(yùn)算的例子:
 

?
1
2
3
4
5
6
>>> 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)

現(xiàn)在讓我們試試乘方操作:
 

?
1
2
>>> Fraction(1, 8) ** Fraction(1, 2)
0.3535533905932738

它返回一個浮點(diǎn)數(shù),可能是因?yàn)榉謹(jǐn)?shù)不能進(jìn)行合理的計算。實(shí)際上我們可以使用limit_denominator方法得到一個近似的Fraction值。
 

?
1
2
3
>>> f = Fraction(1, 8) ** Fraction(1, 2)
>>> Fraction(f).limit_denominator()
Fraction(235416, 665857)

記住,你可以混合字符串和其他上邊實(shí)例化部分中提到的數(shù)據(jù)類型。
 

?
1
2
3
4
>>> Fraction("1/2") + Fraction(2.0)
Fraction(5, 2)
>>> Fraction(2) * Fraction("  1/2  ")
Fraction(1, 1)

4 獲取Fraction對象的屬性

你已經(jīng)有了一個Fraction對象,并且已經(jīng)做了一些計算,現(xiàn)在我們?nèi)绾卧L問它的屬性呢?

不閱讀文檔的話,你或許會嘗試Fraction.numerator和Fraction.denominator,事實(shí)證明你是正確的。
 

?
1
2
3
4
5
>>> f = Fraction(221, 234) + Fraction(1, 2)
>>> f.numerator
13
>>> f.denominator
9

或者作為一個字符串,打印整個分?jǐn)?shù):
 

?
1
2
3
4
5
>>> print f
13/9
>>> a = str(f)
>>> a
'13/9'
5 GCD

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

首先導(dǎo)入:
 

?
1
from fractions import gcd

一些例子:
 

?
1
2
3
4
>>> gcd(100, 75)
25
>>> gcd(221, 234)
13


6 總結(jié)

希望你已經(jīng)學(xué)到了一些關(guān)于在Python中處理分?jǐn)?shù)的東西。如果你想閱讀更多內(nèi)容,可以查看文檔。如果你感覺學(xué)起來非常有動力,可以看看源代碼。

如果你有更有趣的分?jǐn)?shù)使用方法,告訴我,我會將它們添加到指南中。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 天堂精品高清1区2区3区 | 我要看免费毛片 | 国产福利不卡视频 | 国产亚洲福利精品一区二区 | 激情乱文| 亚洲黄色片免费看 | 欧美brazzers| 国产激情久久久久影院小草 | 免费观看视频在线 | 亚洲精品第五页 | bl放荡受np双性 | 成人影院vs一区二区 | 国产高清免费午夜在线视频 | 精品国产免费第一区二区 | 国产成人亚洲精品乱码在线观看 | 亚洲一区二区精品推荐 | 国产欧美一区视频在线观看 | 国产小嫩模好紧 | 黄网在线观看免费网站台湾swag | 久久国产乱子伦免费精品 | 精品国产一区二区在线观看 | 欧美肥胖bb | 午夜小视频免费观看 | 国产精品久久久久jk制服 | 久久久久久久久性潮 | 亚洲欧美综合区自拍另类 | 80s在线| 精品成人一区二区三区免费视频 | 青青青国产成人久久111网站 | 日韩香蕉视频 | 亚洲香蕉综合在人在线视看 | 狠狠搞视频| 全黄h全肉细节修仙玄幻文 全彩调教侵犯h本子全彩妖气he | 国产激情视频 | 小早川怜子在线播放精品 | 窝窝午夜精品一区二区 | 激情综合站 | 国产香蕉97碰碰久久人人 | 国产午夜一区二区在线观看 | 欧美一级在线视频 | 日本人妖在线 |