Python में तीन अलग-अलग तरह की बिल्ट-इन संख्याएँ होती हैं: पूर्णांक (int), फ्लोटिंग-पॉइंट (float) और कॉम्प्लेक्स (complex)।
फ्रैक्शन (fractions.Fraction) और डेसिमल (decimal.Decimal) भी स्टैंडर्ड लाइब्रेरी से इम्पोर्ट करके उपलब्ध हैं।
जिन पूर्ण संख्याओं में दशमलव स्थान नहीं होते, वे भी ints मानी जाती हैं, और इनमें हेक्साडेसिमल (hex()), ऑक्टल (oct()) और बाइनरी (bin()) संख्याएँ भी शामिल हैं:
# Ints are whole numbers.
>>> 1234
1234
>>> type(1234)
<class 'int'>
>>> -12
-12
दशमलव बिंदु वाली संख्याएँ (भिन्नात्मक भाग हों या न हों) floats मानी जाती हैं:
>>> 3.45
3.45
>>> type(3.45)
<class 'float'>
Python इन अलग-अलग संख्या प्रकारों के बीच अंकगणित का पूरा समर्थन करता है, और बाइनरी अंकगणितीय ऑपरेटरों (+, -, *, /, // और %) के साथ उपयोग होने पर छोटे प्रकार की संख्याओं को उनके बड़े प्रकार के अनुरूप बदल देता है।
जोड़ और घटाव के ऑपरेटर सामान्य गणित की तरह ही व्यवहार करते हैं।
अगर ऑपरेंडों में से एक या अधिक float हों, तो बाकी int भी float में बदल दिए जाते हैं:
>>> 5 - 3
2
# The int is widened to a float here, and a float is returned.
>>> 3 + 4.0
7.0
जोड़ और घटाव की तरह, गुणा भी छोटे प्रकार की संख्याओं को उनके बड़े प्रकार के अनुरूप बदल देता है:
>>> 3 * 2
6
>>> 3 * 2.0
6.0
भाग हमेशा एक float लौटाता है, भले ही परिणाम पूर्ण संख्या हो:
>>> 6/5
1.2
>>> 6/2
3.0
अगर int परिणाम चाहिए, तो फ्लोर डिवीज़न से परिणाम का दशमलव भाग हटाया जा सकता है।
फ्लोर डिवीज़न // ऑपरेटर से किया जाता है:
>>> 6//5
1
>>> 6//2
3
मॉड्यूलो ऑपरेटर (%) दोनों ऑपरेंडों के भाग का शेषफल लौटाता है:
# The result of % is zero here, because dividing 8 by 2 leaves no remainder
>>> 8 % 2
0
# The result of % is 2 here, because 3 only goes into 5 once, with 2 leftover
>>> 5 % 3
2
5 % 3 को देखने का एक और तरीका:
>>> whole_part = int(5/3)
1
>>> decimal_part = 5/3 - whole_part
0.6666666666666667
>>> whole_remainder = decimal_part * 3
2.0
Python में एक बिल्ट-इन फंक्शन round(number, <decimal_places>) होता है, जो किसी फ्लोटिंग पॉइंट संख्या को दिए गए दशमलव स्थानों तक राउंड कर देता है।
अगर दशमलव स्थानों की संख्या नहीं दी जाए, तो संख्या को निकटतम पूर्णांक तक राउंड किया जाता है और यह एक int लौटाता है:
>>> round(3.1415926535, 2)
3.14
>>> round(3.1415926535)
3
Python आपको एक्सप्रेशनों को समूहित करने के लिए कोष्ठकों का उपयोग करने देता है। यह तब उपयोगी होता है जब आप संक्रियाओं के डिफ़ॉल्ट क्रम को बदलना चाहते हैं।
>>> 2 + 3 * 4
14
>>> (2 + 3) * 4
20
Python ऑपरेटर प्राथमिकता के लिए PEMDAS नियम का पालन करता है।
इसका मतलब है कि () के अंदर की गणनाओं की प्राथमिकता सबसे ज़्यादा होती है, उसके बाद **, फिर *, /, //, %, + और - आते हैं:
>>> 2 + 3 - 4 * 4
-11
>>> (2 + 3 - 4) * 4
4
# In the following example, the `**` operator has the highest priority, then `*`, then `+`
# Meaning we first do 4 ** 4, then 3 * 64, then 2 + 192
>>> 2 + 3 * 4 ** 4
770
Python में पूर्णांकों की मनमानी परिशुद्धता होती है। अंकों की संख्या केवल होस्ट सिस्टम की उपलब्ध मेमोरी तक सीमित होती है।
फ्लोटिंग पॉइंट संख्याएँ आमतौर पर C में double से लागू की जाती हैं (15 दशमलव स्थानों की परिशुद्धता), लेकिन होस्ट सिस्टम के अनुसार इनका निरूपण अलग हो सकता है।
कॉम्प्लेक्स संख्याओं में एक real भाग और एक imaginary भाग होता है, और दोनों को फ्लोटिंग पॉइंट संख्याओं से दर्शाया जाता है।
अलग-अलग प्रोग्रामिंग भाषाओं में फ्लोटिंग पॉइंट अंकगणित की समस्याओं और सीमाओं पर अधिक विस्तृत चर्चा के लिए 0.30000000000000004.com और Python ट्यूटोरियल को देखिए।
जिस कंपनी में आप काम करते हैं, वह अपना कार्बन फुटप्रिंट कम करना चाहती है, इसलिए चाहती है कि आप एक ऐसा प्रोग्राम लिखें जो उसके इलेक्ट्रॉनिक उपकरणों की बिजली खपत और उन्हें चलाने की लागत निकाले।
आपके नियोक्ता के पास एक प्रोग्राम है जो अलग-अलग इलेक्ट्रॉनिक उपकरणों को चलाने में लगने वाले समय की गणना करता है। फिलहाल यह समय घंटों में संग्रहीत किया जाता है। जब आपके नियोक्ता ने ये घंटे जोड़े, तो उन्होंने देखा कि समय की अवधि सही नहीं थी। वे चाहते हैं कि आप समय के डेटा में 3 अतिरिक्त घंटे जोड़ दें। वे यह भी जानना चाहते हैं कि डेटा को "पूरे" दिनों में बदलने के बाद कितने "अतिरिक्त" घंटे बचते हैं (एक दिन में 24 घंटे होते हैं)। हो सकता है कि जिस समय को बदलना है वह पूरे दिनों में न हो।
एक फंक्शन get_extra_hours() बनाइए जो एक पूर्णांक लेता है जिसमें घंटों की संख्या रखी होती है।
फंक्शन को अतिरिक्त घंटों का उचित समायोजन करना चाहिए और फिर एक पूर्णांक return करना चाहिए, जो बताता है कि कुल समय को "पूरे" दिनों में बदलने के लिए उसमें से कितने घंटे हटाने होंगे।
>>> get_extra_hours(25)
4
आपके नियोक्ता यह जानना चाहते हैं कि अलग-अलग इलेक्ट्रॉनिक उपकरण कितने kW बिजली की खपत करते हैं। kW का मतलब किलोवाट है, और वाट शक्ति मापने की एक इकाई है। इकाई के नाम में लगा किलो मीट्रिक प्रणाली का एक उपसर्ग है जिसका मतलब 1000 होता है। एक किलोवाट == 1000 वाट।
एक फंक्शन get_kW_value() बनाइए जो एक पूर्णांक लेता है जिसमें वाट की संख्या रखी होती है।
इसके बाद फंक्शन को वाट को किलोवाट में बदलकर, 1 दशमलव स्थान तक राउंड करके, return करना चाहिए।
>>> get_kW_value(1150)
1.2
इलेक्ट्रॉनिक उपकरणों को चलाने की लागत निकालने के लिए आपके नियोक्ता को kWh में बिजली की खपत जाननी होगी। kWh का मतलब किलोवाट-घंटा है, और घंटा समय मापने की एक इकाई है। एक किलोवाट-घंटा == 1 घंटे तक इस्तेमाल किए गए 1000 वाट। एक घंटा 60 मिनट का होता है और एक मिनट 60 सेकंड का। एक घंटा 3600 सेकंड के बराबर होता है। kWh वैल्यू निकालने के लिए आपको पहले वाट को kW में बदलना होगा और फिर परिणाम का 3600 से फ्लोर डिवीज़न करना होगा।
एक फंक्शन get_kWh_value() बनाइए जो एक पूर्णांक लेता है जिसमें वाट की संख्या रखी होती है।
इसके बाद फंक्शन को किलोवाट-घंटे को एक पूर्णांक के रूप में return करना चाहिए।
>>> get_kWh_value(5000000)
1
इलेक्ट्रॉनिक उपकरण 100% दक्ष नहीं होते। इसलिए आपके नियोक्ता चाहते हैं कि आप इलेक्ट्रॉनिक उपकरणों की दक्षता निकालें। दक्षता निकालने के लिए आपको पावर फैक्टर (0 और 100 के बीच की एक दशमलव संख्या) को 100 से भाग देना होगा।
एक फंक्शन get_efficiency() बनाइए जो एक दशमलव संख्या लेता है जिसमें पावर फैक्टर रखा होता है।
इसके बाद फंक्शन को निकाली गई दक्षता को एक दशमलव संख्या के रूप में return करना चाहिए।
>>> get_efficiency(80)
0.8
आपके नियोक्ता इलेक्ट्रॉनिक उपकरणों को चलाने की लागत जानना चाहते हैं। इलेक्ट्रॉनिक उपकरणों को चलाने की लागत, इस्तेमाल की गई बिजली को प्रति kWh लागत से गुणा करके मिलती है। इस्तेमाल की गई बिजली, दी गई बिजली को निकाली गई दक्षता से भाग देने पर मिलती है।
एक फंक्शन get_cost(<watts>,<power_factor>,<price>) बनाइए जो एक पूर्णांक लेता है जिसमें वाट की संख्या रखी होती है, एक दशमलव संख्या जिसमें पावर फैक्टर रहता है, और एक दशमलव संख्या जिसमें प्रति kWh लागत रखी होती है।
इसके बाद फंक्शन को इलेक्ट्रॉनिक उपकरणों को चलाने की लागत को एक दशमलव संख्या के रूप में return करना चाहिए।
>>> get_cost(5000000, 80, 0.25)
0.3125
Exercism पर साइन अप कीजिए और Python को 17 कॉन्सेप्ट146 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।