Fraction क्लास
आप एक सरल कैलकुलेटर विकसित कर रहे हैं, और आपका कार्य एक Python क्लास
Fraction
बनाना है जो एक गणितीय भिन्न को दर्शाता है।इस क्लास में 5 मैजिक मेथड्स होने चाहिए:
__add__
: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction और आर्गुमेंट Fraction के योग के बराबर है।
__sub__
: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction में से आर्गुमेंट Fraction को घटाने के परिणाम के बराबर है।
__mul__
: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction और आर्गुमेंट Fraction के गुणनफल के बराबर है।
__truediv__
: यह मेथड एक अन्य Fraction ऑब्जेक्ट को आर्गुमेंट के रूप में लेगा और एक नया Fraction ऑब्जेक्ट लौटाएगा जो मूल Fraction को आर्गुमेंट Fraction से विभाजित करने के परिणाम के बराबर है। यदि आर्गुमेंट Fraction का अंश शून्य है, तो यह मेथडZeroDivisionError
उठाना चाहिए।
__str__
: यह मेथड भिन्न कोnumerator / denominator
प्रारूप में लौटाना चाहिए। मेथड भिन्न का स्ट्रिंग स्वरूप उसके सरलतम रूप में लौटाएगा (उदाहरण के लिए, "4 / 6" के बजाय "2 / 3")। भिन्न को सरल बनाने के लिए, अंश और हर (न्यूमेरेटर और डिनॉमिनेटर) को उनके महत्तम समापवर्तक (GCD) से विभाजित करें।
Fraction क्लास को दो पैरामीटर्स,
numerator
और denominator
, के साथ इंस्टैंशिएट किया जा सकता है। दोनों पैरामीटर्स पूर्णांक होने चाहिए, और यदि denominator
प्रदान नहीं किया गया है तो उसका डिफ़ॉल्ट मान 1
होना चाहिए। यदि डिनॉमिनेटर शून्य है, तो __init__
मेथड में प्रोग्राम को ValueError
उठाना चाहिए।इनपुट | आउटपुट |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1+f2; print(f3) | 5 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1-f2; print(f3) | 1 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 * f2; print(f3) | 1 / 6 |
f1 = Fraction(1, 2); f2 = Fraction(1, 3); f3 = f1 / f2; print(f3) | 3 / 2 |
f1 = Fraction(1, 2); f2 = Fraction(0, 3); f3 = f1 / f2; print(f3) | ZeroDivisionError: You can't divide by zero! |
f1 = Fraction(1, 0); | ValueError: The denominator cannot be zero! |
Constraints
Time limit: 1 seconds
Memory limit: 512 MB
Output limit: 1 MB