2008-11-30 5 views

उत्तर

9

fractions module 2.6 से आवश्यक हो तो बाहर निकाल दिया जा सकता है। Frctions.py, numbers.py, और abc.py पकड़ो; सभी शुद्ध पायथन मॉड्यूल।

आप (2.6 शाखा, 2.7 काम नहीं करता है) यहां से एकल फ़ाइलें प्राप्त कर सकते हैं: प्रयास करने के लिए http://hg.python.org/cpython/branches

+0

सच है, मैंने सोचा कि यह और भी मुश्किल होगा! – Constantin

+0

नोट: यह सामान्य मामले में काम नहीं करता है। उदा। फ्रैक्शन। फ्रैक्शन (10) * 10 => विशेषता त्रुटि: 'int' ऑब्जेक्ट में कोई विशेषता 'numerator' नहीं है। प्रतीत होता है कि int ऑब्जेक्ट्स Python 2.6 में एक संख्यात्मक है, लेकिन पायथन 2.5 में नहीं। मुझे यह जानने में दिलचस्पी होगी कि दूसरों ने इस समस्या के आसपास कैसे काम किया (मैंने ऑपरेटर का उपयोग करने से पहले अपने शाब्दिकों को भिन्न होने के लिए मजबूर किया)। – benno

+0

इंटरेक्ट और लंबे समय से सही तरीके से संभालने के लिए '_operator_fallbacks' फ़ंक्शन में 'आगे' और 'रिवर्स' की परिभाषाओं को बदलने के लिए एक बेहतर कार्य-आसपास है। सीमित प्रारूप विकल्पों के कारण टिप्पणी में वर्णित करना मुश्किल है, लेकिन कुछ ऐसा है: "elif isinstance (बी, (int, long)): monomorphic_operator (ए, फ्रैक्शन (बी)" लौटाएं – benno

8

SymPy एक प्रतीकात्मक गणित लाइब्रेरी है जो पूरी तरह से पायथन में लिखी गई है और तर्कसंगत संख्याओं के लिए पूर्ण समर्थन है। tutorial से:

>>> from sympy import * 
>>> a = Rational(1,2) 

>>> a 
1/2 

>>> a*2 
1 

>>> Rational(2)**50/Rational(10)**50 
1/88817841970012523233890533447265625 

वहाँ भी अजगर (GMPY) जो है, जबकि शुद्ध अजगर, शायद और अधिक कुशल है के लिए जीएमपी है।

+0

धन्यवाद। सिम्पी का तर्कसंगत अच्छा है, अगर लाइब्रेरी के अन्य हिस्सों के साथ थोड़ा सा अंतर्निहित है। – Constantin

2

एक और बात अजगर 2.5 रखरखाव शाखा में डेमो फ़ोल्डर से Rat.py है। अगर मैं सही ढंग से समझता हूं, तो यह 2.6 fractions का पिता है। यह निर्भरता के बिना एक एकल मॉड्यूल है।

>>> from Rat import rat 
>>> rat(1)/rat(3) 
Rat(1,3) 
>>> rat(1, 3) ** 2 
Rat(1,9) 

अद्यतन: नहीं, fractions.py मेरे कार्य के लिए लगभग 2.5 गुना तेज है।

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^