संख्याएँ और अंकगणित

संख्याएँ लगभग हर प्रोग्राम में दिखाई देती हैं जो आप लिखते हैं। एक शॉपिंग कार्ट एक कीमत जोड़ता है। एक खेल एक स्कोर अपडेट करता है। एक स्क्रिप्ट गिनती करती है कि कोई चीज़ कितनी बार हुई। Python आपको अंकगणितीय संचालक देता है जो कागज़ के गणित की तरह काम करते हैं, साथ ही कुछ ऐसे भी हैं जो शुरुआत से ही जानने लायक हैं।
संचालक
गणित से चार संचालक (+, -, *, /) बिल्कुल वैसे ही काम करते हैं जैसे आप अपेक्षा करेंगे। Python तीन और जोड़ता है जिनका उपयोग आप लगातार करेंगे: पूर्णांक विभाजन, शेषफल, और घातांक।
price = 12.99
quantity = 3
print(price * quantity) # 38.97
print(price + 2) # 14.99
print(price - 1.00) # 11.99| संचालक | नाम | उदाहरण | परिणाम |
|---|---|---|---|
+ | जोड़ | 5 + 3 | 8 |
- | घटाव | 5 - 3 | 2 |
* | गुणा | 5 * 3 | 15 |
/ | विभाजन | 5 / 3 | 1.6666... |
// | पूर्णांक विभाजन | 5 // 3 | 1 |
% | शेषफल | 5 % 3 | 2 |
** | घातांक | 5 ** 3 | 125 |
+, -, *, / कागज़ के गणित की तरह व्यवहार करते हैं। तीन अतिरिक्त जल्दी सीखने लायक हैं: // एक पूरी संख्या तक विभाजित करता है, % आपको शेषफल देता है, और ** एक शक्ति तक बढ़ाता है। मैं % का उपयोग कहीं अधिक करता हूँ जितना मैं कभी अपेक्षा करता था। विभाजन: / बनाम //
/ आपको सटीक दशमलव परिणाम देता है, भले ही उत्तर एक पूरी संख्या हो। // अंशात्मक भाग को छोड़ देता है और ऋणात्मक अनंत की ओर फर्श करता है। सकारात्मक संख्याओं के लिए इसका मतलब दशमलव को काटना है, लेकिन ऋणात्मक संख्याओं के लिए यह शून्य से एक कदम और दूर जाता है:
10 / 2 # 5.0 (हमेशा float, भले ही यह समान रूप से विभाजित हो)
10 / 3 # 3.3333333333333335
10 // 3 # 3
7 // 2 # 3
-7 // 2 # -4 (ऋणात्मक अनंत की ओर फर्श करता है, शून्य की ओर नहीं)आप ज़्यादातर सकारात्मक संख्याओं के साथ // का उपयोग करेंगे। जब वे दिखाई दें तो ऋणात्मक व्यवहार को ध्यान में रखें।
/ हमेशा एक दशमलव को हाथ करता है, भले ही यह समान रूप से विभाजित हो: 4 / 2 2.0 है। // अंशात्मक भाग को छोड़ देता है, लेकिन ऋणात्मक देखें: -7 // 2 -4 है, -3 नहीं, क्योंकि यह काटने के बजाय फर्श करता है। पहली बार मुझे यह मिला तो मुझे चकित कर गया। शेषफल संचालक %
% आपको पूर्णांक विभाजन के बाद जो बचा है उसे देता है। यदि 10 // 3 3 है (क्योंकि 3 10 में तीन बार जाता है), तो 10 % 3 1 है (क्योंकि 3 × 3 = 9, और 10 - 9 = 1)। सबसे आम उपयोग यह जांचना है कि कोई संख्या सम है या विषम।
10 % 3 # 1
10 % 2 # 0 (समान रूप से विभाजित होता है)
10 % 7 # 3
6 % 2 # 0 (सम)
7 % 2 # 1 (विषम)% पूर्णांक विभाजन के बाद बचा हुआ है। 10 % 3 1 है क्योंकि 3 10 में तीन बार फिट होता है 1 के साथ बचा हुआ। आप ज़्यादातर इसे सम/विषम जांच के रूप में देखेंगे: n % 2 सम के लिए 0, विषम के लिए 1 है। घातांक **
** एक संख्या को एक शक्ति तक बढ़ाता है। दो asterisks का उपयोग करें, ^ प्रतीक नहीं (जिसका Python में कुछ और मतलब है):
2 ** 10 # 1024
3 ** 3 # 27
9 ** 0.5 # 3.0 (square root: 0.5 की शक्ति तक बढ़ाएं)** एक संख्या को एक शक्ति तक बढ़ाता है, तो 2 ** 10 1024 है। एक fractional power आपको एक root देता है: 9 ** 0.5 3.0 है। एक trap प्रतीक है, ** का उपयोग करें, ^ नहीं, जो Python में कुछ unrelated करता है। संचालक प्राधिकार
Python मानक गणित क्रम का पालन करता है: घातांक पहले, फिर गुणा और विभाजन, फिर जोड़ और घटाव। जब आप निश्चित नहीं हैं, तो parentheses का उपयोग करें। वे intention को स्पष्ट करते हैं और कुछ नहीं लगते:
2 + 3 * 4 # 14, 20 नहीं
2 ** 3 + 1 # 9, 512 नहीं
10 - 4 / 2 # 8.0, 3.0 नहीं
(2 + 3) * 4 # 20
10 / (2 + 3) # 2.0कैसे int और float परस्पर क्रिया करते हैं
Python का एक सुसंगत नियम है: / हमेशा एक दशमलव देता है, भले ही 4 / 2 2.0 दे। कोई भी operation जो एक पूर्णांक और एक दशमलव को मिलाता है एक दशमलव भी देता है। जब आपको एक पूरी संख्या की आवश्यकता हो, // का उपयोग करें या int() के साथ convert करें।
4 / 2 # 2.0 (float, हमेशा)
4 // 2 # 2 (int)
4 + 2 # 6 (int)
4 + 2.0 # 6.0 (float)
4 * 0.5 # 2.0 (float)/ हमेशा एक दशमलव देता है, तो 4 / 2 2.0 है, 2 नहीं। कहीं भी एक पूरी संख्या को एक दशमलव के साथ मिलाएँ और आप एक दशमलव प्राप्त करते हैं। जब आपको एक पूरी संख्या की आवश्यकता हो, // के लिए पहुंचें या इसे int() में लपेटें। Float परिशुद्धि
एक gotcha है जो लगभग हर किसी को किसी बिंदु पर हैरान करता है:
0.1 + 0.2 # 0.30000000000000004वह tiny error एक Python bug नहीं है। कंप्यूटर दशमलव संख्याओं को बाइनरी में store करते हैं, और कुछ values जैसे 0.1 को सटीक रूप से represent नहीं किया जा सकता। यह कैसे similar है 1/3 को दशमलव में सटीक रूप से नहीं लिखा जा सकता। अधिकांश रोज़मर्रा की गणनाओं के लिए यह matter नहीं करता। धन को display करने के लिए, round() या :.2f format specifier output को tidy रखेगा।
0.1 का कोई exact binary form नहीं है, तो 0.1 + 0.2 0.30000000000000004 आता है। यह Python bug नहीं है, हर भाषा यह करता है। रोज़मर्रा के output के लिए, round() या :.2f इसे tidy रखता है। Readable number literals
Python आपको number literals में underscores रखने देता है बड़ी संख्याओं को ज़्यादा readable बनाने के लिए। Python उन्हें completely ignore करता है; वे आपके लिए हैं:
population = 8_100_000_000
distance_km = 384_400
pi_approx = 3.141_592_6538_100_000_000 8100000000 के समान value है। Python उन्हें बिल्कुल ignore करता है, वे आपकी आँखों के लिए हैं, interpreter के लिए नहीं। उपयोगी अंतर्निर्मित functions
abs()
abs() absolute value देता है: हमेशा सकारात्मक, input के चिन्ह के regardless। इसका उपयोग करें जब आप परवाह करते हों कि एक संख्या शून्य से कितनी दूर है, न कि किस दिशा में।
abs(-5) # 5
abs(3.7) # 3.7
abs(-0.5) # 0.5abs() चिन्ह को strip करता है और सकारात्मक size को हाथ करता है: abs(-5) 5 है, abs(3.7) 3.7 है। जब आप care करते हैं कि एक संख्या शून्य से कितनी दूर है, न कि किस दिशा में लीन करता है, के लिए पहुंचें। round()
round() डिफ़ॉल्ट रूप से nearest integer को round करता है। decimal places की एक specific संख्या को रखने के लिए एक दूसरा argument पास करें:
round(3.7) # 4
round(3.2) # 3
round(3.14159, 2) # 3.14जानने लायक एक चीज़: round(2.5) 2 देता है, 3 नहीं। Python जब एक value दो options के बीच सटीक तरीके से halfway हो तो nearest even number को round करता है।
round(x) nearest whole number को जाता है, round(x, n) n decimal places को रखता है। Surprise: एक value जो सटीक halfway बैठता है nearest even number को round करता है, तो round(2.5) 2 है, 3 नहीं। divmod()
divmod() एक ही call में quotient और remainder दोनों देता है। यह values की एक pair, एक tuple (Tuples and sets अध्याय में cover किया गया) return करता है, जिसे आप एक साथ दो names को assign कर सकते हैं:
divmod(10, 3) # (3, 1): quotient 3, remainder 1
divmod(7, 2) # (3, 1)
divmod(9, 3) # (3, 0)
quotient, remainder = divmod(10, 3)
print(quotient) # 3
print(remainder) # 1divmod(a, b) quotient और remainder को together हाथ करता है: divmod(10, 3) (3, 1) है। आप दोनों को एक साथ unpack कर सकते हैं quotient, remainder = divmod(10, 3) के साथ। व्यावहारिक में
एक tip calculator:
bill = 45.50
tip_rate = 0.18
tip = round(bill * tip_rate, 2)
total = round(bill + tip, 2)
print(f"Bill: ${bill}")
print(f"Tip: ${tip}")
print(f"Total: ${total}")round() output को पैसे जैसा दिखने के लिए रखता है बजाय decimal places की एक long run के।

