कोई भी संख्या जिसे p/q के रूप में भागफल या भिन्न के रूप में व्यक्त किया जा सकता है, उसे रेशनल नंबर कहा जाता है। पायथन लाइब्रेरी का fractions मॉड्यूल रेशनल नंबर अंकगणित के लिए कार्यक्षमता प्रदान करता है।
यह मॉड्यूल एक Fraction क्लास को परिभाषित करता है। इसके ऑब्जेक्ट को विभिन्न तरीकों से बनाया जा सकता है:
Fraction(num, denom)
Fraction कंस्ट्रक्टर का पहला संस्करण न्यूमेरेटर और डिनॉमिनेटर के लिए दो पैरामीटर्स प्राप्त करता है। डिफ़ॉल्ट न्यूमेरेटर 0 है और डिफ़ॉल्ट डिनॉमिनेटर 1 है। डिनॉमिनेटर का मान 0 होने पर ZeroDivisionError थ्रो होता है।
>>> from fractions import Fraction >>> n1 = Fraction(2, 5) >>> n1 Fraction(2, 5) >>> n2 = Fraction(6, 15) >>> n2 Fraction(2, 5) >>> n3 = Fraction(10, 1) >>> n3 Fraction(10, 1) >>> n3 = Fraction(10) >>> n3 Fraction(10, 1)
ध्यान दें कि न्यूमेरेटर और डिनॉमिनेटर पैरामीटर्स को सामान्य गुणनखंडों से विभाजित करके न्यूनतम मानों तक कम किया जाता है।
Fraction कंस्ट्रक्टर स्ट्रिंग पैरामीटर भी प्राप्त कर सकता है बशर्ते उसमें वैध न्यूमेरिक प्रतिनिधित्व हो।
>>> n1 = Fraction('5')
>>> n1
Fraction(5, 1)
>>> n2 = Fraction('4/7')
>>> n2
Fraction(4, 7)
>>> n3 = Fraction('0.25')
>>> n3
Fraction(1, 4)
>>> n4 = Fraction('1.23E4')
>>> n4
Fraction(12300, 1)
एक फ्लोटिंग पॉइंट नंबर भी कंस्ट्रक्टर का पैरामीटर हो सकता है। हालांकि, शुद्ध बाइनरी फॉर्म में फ्लोट के प्रतिनिधित्व के कारण, परिणामी Fraction ऑब्जेक्ट के न्यूमेरेटर और डिनॉमिनेटर का भागफल सटीक नहीं हो सकता। दूसरी ओर, Decimal क्लास का एक ऑब्जेक्ट पैरामीटर के रूप में भी एक Fraction ऑब्जेक्ट उत्पन्न करता है।
>>> from fractions import Fraction
>>> from decimal import Decimal
>>> n1 = Fraction(2.1)
>>> n1
Fraction(4728779608739021, 2251799813685248)
>>> n2 = Fraction(Decimal('2.1'))
>>> n2
Fraction(21, 10)
Fraction ऑब्जेक्ट्स के साथ सभी अंकगणितीय ऑपरेशंस अनुमत हैं।
>>> n1 = Fraction(2, 3) >>> n2 = Fraction(1, 2) >>> n1 + n2 Fraction(7, 6) >>> n1 - n2 Fraction(1, 6) >>> n1 * n2 Fraction(1, 3) >>> n1 / n2 Fraction(4, 3)
सिर्फ यह याद दिलाने के लिए कि भागफल रूप में रेशनल नंबर अंकगणित कैसे किया जाता है:

Fraction ऑब्जेक्ट के दो एट्रिब्यूट्स हैं, numerator और denominator जिन्हें स्वतंत्र रूप से एक्सेस किया जा सकता है।
>>> n1 = Fraction(2, 3) >>> n1.numerator 2 >>> n1.denominator 3
Fraction क्लास में फ्लोर वैल्यू (भागफल से छोटा सबसे बड़ा इंटीजर) और सील वैल्यू (भागफल से बड़ा सबसे छोटा इंटीजर) खोजने के लिए निम्नलिखित उपयोगी मेथड्स हैं:
>>> n1 = Fraction(355, 113) >>> n1.__floor__() 3 >>> n1.__ceil__() 4
एक और क्लास मेथड limit_denominator() वह निकटतम भिन्न लौटाता है जिसका डिनॉमिनेटर निर्दिष्ट मान से अधिकतम बराबर होता है।
>>> Fraction('2.71828').limit_denominator(400)
Fraction(1071, 394)
इस आर्टिकल में पायथन स्टैंडर्ड लाइब्रेरी के fractions मॉड्यूल की विशेषताओं और फंक्शंस पर चर्चा की गई है।