Rozdział 4 · Python lubi liczby

Fraction są dokładnymi ułamkami zwyczajnymi

Gdy potrzebna jest nie dziesiętna, ale zwykła dokładna ułamek — licznik przez mianownik, bez przybliżenia.

Innym dokładnym narzędziem numerycznym ze standardowej biblioteki jest Fractionzwykłym ułamkiem wymiernym „licznik/mianownik”

fraction_demo.py
from fractions import Fraction

third = Fraction(1, 3)
print(third)  # 1/3
1/3
Fraction(1, 3) — dokładnie jedna trzecia, bez przybliżenia

Arytmetyka z Fraction jest dokładna

fraction_math.py
from fractions import Fraction

result = Fraction(1, 3) + Fraction(1, 6)
print(result)  # 1/2 — dokładnie, nie przybliżeniowo

Fraction z tekstu i float też jest różnicą

fraction_stroka.py
from fractions import Fraction

print(Fraction("0.1"))  #1/10 – czytane z tekstu dziesiętnego poprawnie
print(Fraction(0.1))    #3602879701896397/36028797018963968 – odziedziczyłem podejście float!

Ta sama logika co z Decimal w 4.14: Stwórz najpierw floattakie podejście już wcześniej miało miejsce Fraction zdążyłem go otrzymać.

float, Decimal i Fraction obok siebie

ToolPrzedstawiaDokładny dlaTypowe zastosowanie
floatPrzybliżenie binarnePotęgi dwójki i ich sumyNauka, pomiary, ogólne obliczenia
DecimalDziesiętnyWartości dziesiętnePieniądze, księgowość
FractionLiczba wymierna p/qDowolny ułamek normalnyDokładna arytmetyka wymierna
float vs Decimal vs Fraction
Czy potrzebujesz regularnych obliczeń lub pomiarów?
float
Czy potrzebujesz precyzji dziesiętnej (pieniędzy)?
Decimal
Czy potrzebujesz dokładnej części p/q?
Fraction
Trzy narzędzia do trzech różnych rodzajów precyzji
Praktyka: Fraction i dokładne ułamki
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji
Otwórz praktykę →