Стандартты Python кітапханасының бөлшек модулін пайдаланып, бөлшектермен (рационал сандар) есептеулер жүргізуге болады.
Мұнда төмендегілер түсіндіріледі.
- Бөлшектің конструкторы
- Бөлгіш пен алым мәндерін бүтін сандар ретінде алыңыз
- Бөлшектерді есептеу және салыстыру (рационал сандар)
- Бөлшектерді ондық бөлшектерге түрлендіру (флоат)
- Бөлшектен жолға (str) түрлендіру
- Рационал сандарды жуықтап алу
Бөлшектің конструкторы
Fraction данасын жасаудың бірнеше жолы бар. Барлық жағдайларда бөлшек автоматты түрде бөлшектерге бөлінеді.
Алым мен бөлгішті бүтін сандар ретінде көрсетіңіз
Алым мен бөлгішті тиісінше бүтін сандар ретінде көрсетіңіз. Егер бөлгіш түсірілсе, ол 1 деп есептеледі.
from fractions import Fraction print(Fraction(1, 3)) # 1/3 print(Fraction(2, 6)) # 1/3 print(Fraction(3)) # 3
ондық бөлшек(float)
Бөлшек мән берілсе, ол бөлшекке түрлендіріледі.
print(Fraction(0.25)) # 1/4 print(Fraction(0.33)) # 5944751508129055/18014398509481984
Максималды бөлгішті көрсету арқылы жуықтауды қаласаңыз, төменде сипатталған limit_denominator() әдісін пайдаланыңыз.
таңбалар жолы(str)
Жолдың мәні берілсе, ол бөлшекке түрлендіріледі.
print(Fraction('2/5')) # 2/5 print(Fraction('16/48')) # 1/3
Бөлгіш пен алым мәндерін бүтін сандар ретінде алыңыз
Бөлшек түрінің атрибуттары сәйкесінше алым және бөлгіш үшін бүтін мәндерді алуға мүмкіндік береді. Оларды өзгерту мүмкін емес.
numerator
denominator
a = Fraction(1, 3) print(a) # 1/3 print(a.numerator) print(type(a.numerator)) # 1 # <class 'int'> print(a.denominator) print(type(a.denominator)) # 3 # <class 'int'> # a.numerator = 7 # AttributeError: can't set attribute
Бөлшектерді есептеу және салыстыру (рационал сандар)
Арифметикалық операторларды қосу, азайту және т.б. есептеуге болады.
result = Fraction(1, 6) ** 2 + Fraction(1, 3) / Fraction(1, 2) print(result) print(type(result)) # 25/36 # <class 'fractions.Fraction'>
Салыстыру операторларын да қолдануға болады.
print(Fraction(7, 13) > Fraction(8, 15)) # True
Бөлшектерді ондық бөлшектерге түрлендіру (флоат)
float() көмегімен бөлшектерден ондық бөлшектерге түрлендіруге болады.
a_f = float(a) print(a_f) print(type(a_f)) # 0.3333333333333333 # <class 'float'>
Ондық санмен есептегенде, ол автоматты түрде қалқымалы түрге түрлендіріледі.
b = a + 0.1 print(b) print(type(b)) # 0.43333333333333335 # <class 'float'>
Бөлшектен жолға (str) түрлендіру
Жолға түрлендіру үшін str() пайдаланыңыз.
a_s = str(a) print(a_s) print(type(a_s)) # 1/3 # <class 'str'>
Рационал сандарды жуықтап алу
Рационал санның жуықтауын Fraction түріндегі limit_denominator() әдісімен алуға болады.
Азайғышы max_деноминатор аргументінен кіші немесе оған тең рационал санды (бөлшекті) қайтарады. Өткізілмесе, максимум_бөлгіш=1000000.
Pi және Napier саны e сияқты шамамен иррационал сандар
pi = Fraction(3.14159265359) print(pi) # 3537118876014453/1125899906842624 print(pi.limit_denominator(10)) print(pi.limit_denominator(100)) print(pi.limit_denominator(1000)) # 22/7 # 311/99 # 355/113 e = Fraction(2.71828182846) print(e) # 6121026514870223/2251799813685248 print(e.limit_denominator(10)) print(e.limit_denominator(100)) print(e.limit_denominator(1000)) # 19/7 # 193/71 # 1457/536
Дөңгелек ондық бөлшектерді бөлшекке түрлендіру
a = Fraction(0.565656565656) print(a) # 636872674577009/1125899906842624 print(a.limit_denominator()) # 56/99 a = Fraction(0.3333) print(a) # 6004199023210345/18014398509481984 print(a.limit_denominator()) print(a.limit_denominator(100)) # 3333/10000 # 1/3