अंकगणित — भाग, शेषफल और दशमलव का जाल
सात अंकगणितीय ऑपरेटर, कौन सा पहले चलता है, फ्लोर डिवीजन और शेषफल कहाँ उपयोगी हैं, और दशमलव संख्याएं कभी-कभी अजीब परिणाम क्यों देती हैं।
- 1समस्या
- 2समझें
- 3उदाहरण
- 4अनुमान
- 5स्वयं करें
- 6चुनौती
वह समस्या जिसे हम हल कर रहे हैं
17 किताबें हैं और एक बॉक्स में 5 किताबें आती हैं। कुल कितने भरे हुए बॉक्स होंगे, और कितनी किताबें बचेंगी?
इसका उत्तर 17 / 5 नहीं है। वह 3.4 देता है, और 3.4 बॉक्स जैसी कोई चीज़ नहीं होती। आपको दो अलग-अलग उत्तरों की आवश्यकता है: कितने पूरे बॉक्स भरे और कितनी किताबें शेष बचीं। पायथन में दोनों के लिए अलग-अलग ऑपरेटर हैं: // (फ्लोर डिवीजन) और % (मॉड्यूलो / शेषफल)।
इसके अतिरिक्त एक और महत्वपूर्ण बात है: पायथन में 0.1 + 0.2 का परिणाम 0.3 नहीं आता। ऐसा क्यों होता है और इससे कैसे निपटें, यह भी हम इस मिशन में सीखेंगे।
इस मिशन के अंत तक आप सीखेंगे
- सात गणितीय ऑपरेटरों का उपयोग करना
- यह बताना कि कौन सी गणना पहले चलती है (ऑपरेटर वरीयता)
- यह पहचानना कि
//और%का उपयोग कब करना चाहिए - यह समझना कि
/हमेशा दशमलव संख्या (float) क्यों देता है - फ़्लोटिंग-पॉइंट संख्याओं की सटीकता सीमाओं को ध्यान में रखकर गणना करना
पूर्वापेक्षाएँ: वेरिएबल और प्रकार.
सात अंकगणितीय ऑपरेटर
print(10 + 3)
print(10 - 3)
print(10 * 3)
print(10 / 3)
print(10 // 3)
print(10 % 3)
print(10 ** 3)13
7
30
3.3333333333333335
3
1
1000विशेष ऑपरेटर:
//— फ्लोर डिवीजन (Floor Division): भाग देता है और केवल पूर्णांक भाग रखता है%— मॉड्यूलो (Modulo): भाग देने के बाद बचा हुआ शेषफल**— घात (Exponentiation):10 ** 3का अर्थ है 10 की घात 3 (1000)
/हमेशाfloatदेता है। यहाँ तक कि10 / 5का परिणाम भी2.0होता है,2नहीं। यदि आपको पूर्ण संख्या चाहिए, तो//का उपयोग करें।
बॉक्स समस्या का समाधान
books = 17
per_box = 5
full_boxes = books // per_box
left_over = books % per_box
print("Full boxes:", full_boxes)
print("Left over :", left_over)Full boxes: 3
Left over : 23 पूरे बॉक्स भरते हैं और 2 किताबें शेष रह जाती हैं। // और % हमेशा एक जोड़ी के रूप में काम करते हैं।
एक संपूर्ण उदाहरण
packing.py:
# Work out packing and shipping for one order
total_items = 47
items_per_box = 6
box_cost = 35.5
full_boxes = total_items // items_per_box
loose_items = total_items % items_per_box
# A partly filled box still costs a full box
boxes_needed = full_boxes
if loose_items > 0:
boxes_needed = full_boxes + 1
shipping = boxes_needed * box_cost
print("Items :", total_items)
print("Full boxes :", full_boxes)
print("Loose items :", loose_items)
print("Boxes needed :", boxes_needed)
print("Shipping :", round(shipping, 2))Items : 47
Full boxes : 7
Loose items : 5
Boxes needed : 8
Shipping : 284.0सामान्य गलतियाँ और समाधान
ZeroDivisionError: division by zero किसी संख्या को शून्य से भाग देने का प्रयास किया गया। गणित में भी यह अपरिभाषित है, इसलिए पायथन प्रोग्राम रोक देता है।
10 / 5 ने 2.0 दिया और मुझे 2 चाहिए इसके स्थान पर // का प्रयोग करें: 10 // 5।
दशमलव के बाद बहुत सारे अंक आना यह त्रुटि नहीं बल्कि कंप्यूटर में दशमलव संख्याओं का आंतरिक व्यवहार है। प्रदर्शित करते समय इसे round() से छोटा करें।
चरण 4 / 6 — अनुमान
अपनी समझ की जाँच करें
All three lines work on the same two numbers, with a different operator each time. What is the output?
print(7 / 2)
print(7 // 2)
print(7 % 2)- A3.5 3 1
- B3.5 3.5 1
- C3 3 1
- D3.5 4 1
The program runs without any error but reports the average as 40.0. Why?
a = 10
b = 20
c = 30
average = a + b + c / 3
print("Average:", average)- A`/` runs first, so only `c` was divided — it needs to be `(a + b + c) / 3`
- BAverages must use `//`, not `/`
- CThe three numbers are `int`, which makes the result wrong
- D`average` is a reserved word, so the value was not stored properly
What is the output of these two lines?
print(0.1 + 0.2)
print(0.1 + 0.2 == 0.3)- A0.30000000000000004 False
- B0.3 True
- C0.30000000000000004 True
- D0.3 False
उत्तर देने के लिए अकाउंट आवश्यक है
अपने उत्तर जाँचने के लिए साइन इन करें
प्रश्न ऊपर दिए गए हैं, और मन में उत्तर सोचना ही मुख्य कार्य है। सही उत्तर, व्याख्या और तीन-स्तरीय संकेत देखने के लिए साइन इन करें।
आपकी बारी
time_split.py नाम से एक फ़ाइल लिखें जो सेकंड की संख्या को घंटे, मिनट और सेकंड में विभाजित करे।
total_seconds = 7385 से प्रारंभ करें, और आउटपुट ऐसा होना चाहिए:
2 h 3 m 5 sशर्तें:
- केवल
//और%का उपयोग करें — किसी भी परिणाम को सीधे हाथ से न लिखें - तीनों मानों को तीन अलग-अलग सार्थक चरों (variables) में रखें
- फिर
total_secondsको59,60,3600और86399में बदलकर चलाएँ और परिणामों की पुष्टि करें
There is more in this mission
What you read above is the complete mission — nothing was cut out of it. Pro adds:
- भीतर वास्तव में क्या होता है — पायथन इसे कैसे निष्पादित करता है
- अभ्यास का संपूर्ण समाधान, चरण-दर-चरण स्पष्टीकरण के साथ
- कठिन अतिरिक्त अभ्यास
- इस विषय पर साक्षात्कार में क्या पूछा जाता है और उसका आदर्श उत्तर
Step 6 of 6
चुनौती — the chapter quiz
सरल से कठिन — दस प्रश्न, अंतिम वाले जानबूझकर चुनौतीपूर्ण बनाए गए हैं।
Sign in to take the quiz