Python में तीन अलग-अलग तरह की बिल्ट-इन संख्याएँ होती हैं: ints, floats, और complex। लेकिन इस अभ्यास में आप केवल ints और floats के साथ काम करेंगे।
ints पूर्ण संख्याएँ होती हैं। जैसे 1234, -10, 20201278।
Python में पूर्णांकों की मनमानी परिशुद्धता होती है। अंकों की संख्या केवल होस्ट सिस्टम की उपलब्ध मेमोरी तक सीमित होती है।
floats दशमलव बिंदु वाली संख्याएँ होती हैं। जैसे 0.0,3.14,-9.01।
फ्लोटिंग पॉइंट संख्याएँ आमतौर पर Python में C के double की मदद से लागू की जाती हैं (15 दशमलव स्थानों की परिशुद्धता), लेकिन इनका प्रतिनिधित्व होस्ट सिस्टम और अन्य कार्यान्वयन विवरणों के आधार पर अलग-अलग हो सकता है। दशमलव संख्याओं के साथ काम करते समय यह कुछ चौंकाने वाली बातें पैदा कर सकता है, लेकिन ज़्यादातर स्थितियों के लिए यह "काफी अच्छा" है।
इन संसाधनों में आप और जानकारी और चर्चाएँ देख सकते हैं:
int() बिल्ट-इन का दस्तावेज़float() बिल्ट-इन का दस्तावेज़Python ints और floats के बीच अंकगणित का पूरा समर्थन करता है। बाइनरी अंकगणितीय ऑपरेटरों (+, -, *, /, //, और %) के साथ इस्तेमाल करने पर यह छोटी संख्याओं को उनसे बड़ी संख्याओं के अनुरूप बदल देता है।
Python ints को floats से छोटा मानता है। इसलिए किसी एक्सप्रेशन में दशमलव संख्या इस्तेमाल करने पर परिणाम भी दशमलव संख्या ही होगा। लेकिन भाग करते समय परिणाम हमेशा दशमलव संख्या ही होगा, भले ही केवल पूर्णांक इस्तेमाल किए गए हों।
# The int is widened to a float here, and a float type is returned.
>>> 3 + 4.0
7.0
>>> 3 * 4.0
12.0
>>> 3 - 2.0
1.0
# Division always returns a float.
>>> 6 / 2
3.0
>>> 7 / 4
1.75
# Calculating remainders.
>>> 7 % 4
3
>>> 2 % 4
2
>>> 12.75 % 3
0.75
अगर पूर्णांक परिणाम चाहिए, तो आप // से परिणाम को छोटा कर सकते हैं।
>>> 6 // 2
3
>>> 7 // 4
1
किसी दशमलव संख्या को पूर्णांक में बदलने के लिए आप int() इस्तेमाल कर सकते हैं। किसी पूर्णांक को दशमलव संख्या में बदलने के लिए आप float() इस्तेमाल कर सकते हैं।
>>> int(6 / 2)
3
>>> float(1 + 2)
3.0
आपका दोस्त Chandler दुनिया भर के अनोखे देशों की यात्रा करने की योजना बना रहा है। अफसोस की बात है कि गणित में Chandler की पकड़ अच्छी नहीं है। उसे डर है कि यात्रा के दौरान करेंसी एक्सचेंज वाले उसे ठग न लें। इसलिए वह चाहता है कि आप उसके लिए एक करेंसी कैलकुलेटर बनाएँ। ऐप के लिए उसकी ज़रूरतें ये हैं:
exchange_money() फंक्शन बनाइए, जो 2 पैरामीटर लेता है:
budget : वह रकम जिसे आप एक्सचेंज करने की योजना बना रहे हैं।exchange_rate : घरेलू करेंसी की वह रकम जो विदेशी करेंसी की एक यूनिट के बराबर होती है।यह फंक्शन एक्सचेंज की गई करेंसी की वैल्यू लौटाता है।
नोट: अगर आपकी करेंसी USD है और आप USD को EUR में 1.20 के एक्सचेंज रेट पर बदलना चाहते हैं, तो 1.20 USD == 1 EUR.
>>> exchange_money(127.5, 1.2)
106.25
get_change() फंक्शन बनाइए, जो 2 पैरामीटर लेता है:
budget : एक्सचेंज से पहले की रकम।exchanging_value : वह रकम जो एक्सचेंज करने के लिए बजट में से निकाली जाती है।यह फंक्शन वह रकम लौटाता है जो बजट में से बच जाती है।
>>> get_change(127.5, 120)
7.5
get_value_of_bills() फंक्शन बनाइए, जो 2 पैरामीटर लेता है:
denomination : एक अकेले नोट की वैल्यू।number_of_bills : कुल नोटों की संख्या।यह एक्सचेंज बूथ सिर्फ निश्चित इकाइयों में नकदी का लेन-देन करता है। आपको मिलने वाली कुल रकम एक "नोट" या इकाई की वैल्यू से विभाज्य होनी चाहिए। इस बँटवारे में भिन्न या शेष बच सकता है। आपका फंक्शन सिर्फ उन नोटों की कुल वैल्यू लौटाए जो बूथ वापस देगा (भिन्न वाली रकम को छोड़कर)। अफसोस की बात है कि बूथ वह बचा हुआ शेष या खुल्ला पैसा अपने पास अतिरिक्त बोनस की तरह रख लेता है।
>>> get_value_of_bills(5, 128)
640
get_number_of_bills() फंक्शन बनाइए, जो amount और denomination लेता है।
यह फंक्शन वह नोटों की संख्या लौटाता है जो दी गई रकम के अंदर आपको मिल सकती है। दूसरे शब्दों में: शुरुआती रकम में कितने पूरे नोट आ सकते हैं? याद रखिए, आपको सिर्फ पूरे नोट मिल सकते हैं, नोटों के टुकड़े नहीं। इसलिए बँटवारा उसी हिसाब से कीजिए। असल में आप नीचे की ओर, यानी नज़दीकी पूरे नोट या इकाई तक, पूर्णांकित कर रहे हैं।
>>> get_number_of_bills(127.5, 5)
25
get_leftover_of_bills() फंक्शन बनाइए, जो amount और denomination लेता है।
यह फंक्शन वह बची हुई रकम लौटाता है, जो नोटों की इकाई के हिसाब से आपकी शुरुआती रकम में से वापस नहीं दी जा सकती। यह जानना बहुत ज़रूरी है कि बूथ अपने पास ठीक कितना रख लेता है।
>>> get_leftover_of_bills(127.5, 20)
7.5
exchangeable_value() फंक्शन बनाइए, जो budget, exchange_rate, spread और denomination लेता है।
spread पैरामीटर एक्सचेंज फीस के तौर पर ले जाने वाला प्रतिशत है, जिसे पूर्णांक में लिखा जाता है।
इसे 100 से भाग देकर दशमलव संख्या में बदलना होता है।
अगर 1.00 EUR == 1.20 USD है और स्प्रेड 10 है, तो असल एक्सचेंज रेट होगा: 1.00 EUR == 1.32 USD, क्योंकि 1.20 का 10% यानी 0.12 है और यह अतिरिक्त फीस एक्सचेंज में जोड़ दी जाती है।
यह फंक्शन एक्सचेंज रेट और स्प्रेड जोड़कर निकाली गई नई करेंसी की अधिकतम वैल्यू लौटाता है। याद रखिए कि करेंसी की इकाई एक पूर्ण संख्या है और उसे और छोटे हिस्सों में नहीं बाँटा जा सकता।
नोट: लौटाई गई वैल्यू int टाइप की होनी चाहिए।
>>> exchangeable_value(127.25, 1.20, 10, 20)
80
>>> exchangeable_value(127.25, 1.20, 10, 5)
95
Exercism पर साइन अप कीजिए और Python को 17 कॉन्सेप्ट146 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।