যেকোনো সংখ্যা যা ভাগফল বা ভগ্নাংশ আকারে p/q ফরম্যাটে এক্সপ্রেস করা যায়, তাকে রেশনাল নাম্বার বলা হয়। পাইথনের লাইব্রেরির fractions মডিউল রেশনাল নাম্বার আর্থমেটিকের ফাংশনালিটি প্রদান করে।
এই মডিউল Fraction ক্লাস ডিফাইন করে। এর অবজেক্ট নিম্নলিখিতভাবে কনস্টিটিউট করা যায়:
Fraction কনস্ট্রাক্টর
Fraction(num, denom)
প্রথম ভার্শনে কনস্ট্রাক্টর দুটি প্যারামিটার নেয়: নিউমেরেটর এবং ডিনোমিনেটর। ডিফল্ট নিউমেরেটর ০ এবং ডিফল্ট ডিনোমিনেটর ১। ডিনোমিনেটর ০ হলে 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)
ফ্লোটিং পয়েন্ট ও Decimal অবজেক্ট দিয়ে 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 অবজেক্টের অ্যাট্রিবিউট
>>> n1 = Fraction(2, 3) >>> n1.numerator 2 >>> n1.denominator 3
উপকারী মেথডসমূহ
__floor__() এবং __ceil__()
কোয়শেন্ট থেকে ছোট সবচেয়ে বড় ইন্টিজার (ফ্লোর) এবং বড় সবচেয়ে ছোট ইন্টিজার (সিল) বের করে।
>>> n1 = Fraction(355, 113) >>> n1.__floor__() 3 >>> n1.__ceil__() 4
limit_denominator(max_denominator)
নির্দিষ্ট ম্যাক্সিমাম ডিনোমিনেটর পর্যন্ত সবচেয়ে নিকটবর্তী ভগ্নাংশ রিটার্ন করে।
>>> Fraction('2.71828').limit_denominator(400)
Fraction(1071, 394)
এই আর্টিকেলে পাইথন স্ট্যান্ডার্ড লাইব্রেরির fractions মডিউলের ফিচার ও ফাংশনগুলো আলোচনা করা হয়েছে।