🔬
🧬
🔭
🪐
🧪
← डैशबोर्ड पर वापस जाएँ
Font Size:

1. परिचय

डेटा हैंडलिंग (Data Handling) अध्याय में हम पाइथन में डेटा को प्रबंधित करने के विभिन्न तरीकों का अध्ययन करते हैं। पिछले अध्याय में हमने मूल डेटा प्रकार (int, float, str, bool) और ऑपरेटरों के बारे में जाना। इस अध्याय में हम इन डेटा प्रकारों का गहन विश्लेषण करेंगे, जिसमें डेटा प्रकार रूपांतरण (Type Conversion), अंकगणितीय संचालन, स्ट्रिंग संचालन, प्रीमेटिव और कम्पोज़िट डेटा प्रकार, तथा None और मेमोरी प्रबंधन की अवधारणाएँ शामिल हैं। डेटा हैंडलिंग की मजबूत समझ प्रोग्राम लिखने की कुशलता बढ़ाती है।

2. प्रीमेटिव और कम्पोज़िट डेटा प्रकार (Primitive and Composite Data Types)

पाइथन में सब कुछ एक वस्तु (Object) है। प्रत्येक वस्तु का एक प्रकार (Type), एक मान (Value) और एक मेमोरी पता (Identity) होता है।

3. डेटा प्रकार रूपांतरण (Type Conversion)

इम्प्लिसिट रूपांतरण (Implicit Conversion)

पाइथन स्वचालित रूप से एक डेटा प्रकार को दूसरे में बदलता है जब गणितीय संचालन में भिन्न प्रकार के मान शामिल होते हैं। इसे कोट्सन (Coercion) भी कहते हैं। उदाहरण के लिए, int और float के बीच संचालन में int स्वतः float में बदल जाता है।

x = 5      # int
y = 2.5    # float
z = x + y  # 7.5 (float)
print(type(z))

यहाँ x (int) को स्वतः float में बदल दिया गया क्योंकि float, int की तुलना में उच्च श्रेणी का है।

एक्सप्लिसिट रूपांतरण (Explicit Conversion)

जब हम स्वयं किसी डेटा प्रकार को दूसरे में बदलते हैं तो इसे एक्सप्लिसिट रूपांतरण या टाइप कास्टिंग (Type Casting) कहते हैं। इसके लिए int(), float(), str(), bool() जैसे फ़ंक्शन का उपयोग होता है।

a = "10"
b = int(a)      # 10 (int)
c = float(a)    # 10.0 (float)
d = str(25)     # "25" (str)
e = bool(0)     # False
f = bool(5)     # True

रूपांतरण की सीमाएँ

4. अंकगणितीय संचालन (Arithmetic Operations)

पाइथन में सभी अंकगणितीय संचालक (जोड़, घटाव, गुणा, भाग, पूर्णांक भाग, शेषफल, घात) का उपयोग डेटा प्रकारों के साथ किया जा सकता है।

a = 7
b = 2
print(a + b)    # 9
print(a - b)    # 5
print(a * b)    # 14
print(a / b)    # 3.5
print(a // b)   # 3
print(a % b)    # 1
print(a ** b)   # 49

int और float के बीच संचालन

शून्य से भाग

किसी संख्या को शून्य से भाग देने पर ZeroDivisionError उत्पन्न होती है। उदाहरण: 10 / 0 अमान्य है।

5. स्ट्रिंग संचालन (String Operations)

स्ट्रिंग एक वर्ण अनुक्रम है जो कोट्स ('...' या "...") में लिखा जाता है। स्ट्रिंग पर निम्नलिखित संचालन होते हैं:

स्ट्रिंग संयोजन (Concatenation)

+ ऑपरेटर दो स्ट्रिंगों को जोड़ता है।

first = "कक्षा"
second = "11"
full = first + second   # "कक्षा11"

स्ट्रिंग पुनरावृत्ति (Repetition)

* ऑपरेटर स्ट्रिंग को निर्दिष्ट बार दोहराता है।

name = "हा" * 3   # "हाहाहा"

मेंबरशिप ऑपरेटर

in और not in यह जाँचते हैं कि कोई उप-स्ट्रिंग स्ट्रिंग में मौजूद है या नहीं।

print("py" in "python")      # True
print("xy" not in "python")  # True

स्लाइसिंग (Slicing)

स्ट्रिंग का हिस्सा निकालने के लिए स्लाइसिंग का उपयोग होता है। syntax: string[start:end:step]। अंतिम इंडेक्स शामिल नहीं होता।

s = "पाइथन प्रोग्रामिंग"
print(s[0:5])      # पहले 5 वर्ण
print(s[5:])       # 5 से अंत तक
print(s[-3:])      # अंतिम 3 वर्ण
print(s[:4])       # प्रारंभ से 4 वर्ण

6. None और मेमोरी प्रबंधन (None and Memory Management)

None कीवर्ड

None पाइथन का विशेष मान है जो किसी चर के अस्तित्व को बिना मान के दर्शाता है। इसका प्रकार NoneType है।

x = None
print(x)          # None
print(type(x))    # <class 'NoneType'>

मेमोरी प्रबंधन

पाइथन में मेमोरी का आवंटन और मुक्तिकरण स्वचालित रूप से होता है। जब कोई वस्तु अनुपयोगी हो जाती है, तो गार्बेज कलेक्टर (Garbage Collector) उसे मेमोरी से हटा देता है। id() फ़ंक्शन किसी वस्तु के मेमोरी पते की पहचान संख्या देता है।

x = 10
print(id(x))       # वस्तु का पहचान संख्या
y = x
print(id(y))       # समान वस्तु को दर्शाता है

नंबर और स्ट्रिंग की अपरिवर्तनीयता

int, float, str अपरिवर्तनीय (Immutable) हैं। इसका अर्थ है कि किसी चर का मान बदलने पर वास्तव में नई वस्तु बनती है, पुरानी वस्तु नहीं बदलती।

x = 5
x = x + 1   # नई वस्तु 6 बनती है, पुरानी वस्तु 5 गार्बेज हो जाती है

7. डेटा प्रकार जाँचना (Checking Data Types)

type() फ़ंक्शन

print(type(10))       # <class 'int'>
print(type(10.5))     # <class 'float'>
print(type("a"))      # <class 'str'>
print(type(True))     # <class 'bool'>
print(type([1, 2]))   # <class 'list'>

isinstance() फ़ंक्शन

isinstance() जाँचता है कि कोई मान किसी विशेष प्रकार का है या नहीं।

print(isinstance(10, int))       # True
print(isinstance(10.5, int))     # False
print(isinstance("a", str))      # True

8. प्रैक्टिकल उदाहरण (Practical Examples)

उदाहरण 1: तापमान रूपांतरण (फ़ारेनहाइट से सेल्सियस)

f = float(input("फ़ारेनहाइट तापमान दर्ज करें: "))
c = (f - 32) * 5 / 9
print("सेल्सियस तापमान:", c)

उदाहरण 2: दो संख्याओं के भाग और शेषफल

a = int(input("पहली संख्या: "))
b = int(input("दूसरी संख्या: "))
print("भागफल:", a // b)
print("शेषफल:", a % b)

उदाहरण 3: वृत्त की परिधि

r = float(input("त्रिज्या: "))
circumference = 2 * 3.14 * r
print("परिधि:", circumference)

उदाहरण 4: इनपुट डेटा का प्रकार रूपांतरण और योग

जब हम input() से डेटा लेते हैं तो वह स्ट्रिंग होता है। दो संख्याओं का योग निकालने के लिए पहले उन्हें int या float में बदलना आवश्यक है, अन्यथा स्ट्रिंग संयोजन हो जाएगा। नीचे दिए गए प्रोग्राम में यह स्पष्ट दिखता है:

x = input("पहली संख्या: ")
y = input("दूसरी संख्या: ")
print("बिना रूपांतरण:", x + y)          # "12" + "34" = "1234" (स्ट्रिंग जुड़ता है)
print("रूपांतरण के बाद:", int(x) + int(y))  # 12 + 34 = 46

a = float(input("किसी दशमलव संख्या के लिए: "))
b = float(input("अन्य दशमलव संख्या: "))
print("योग:", a + b)

इंट और फ़्लोट के संचालन के प्रकार-नियम

किसी भी अंकगणितीय संचालन में यदि कोई एक संख्या float है, तो परिणाम भी float होगा। उदाहरण के लिए, 7 + 2.5 का परिणाम 9.5 (float) है, जबकि 7 + 2 का परिणाम 9 (int) है। पूर्णांक भाग (//) और शेषफल (%) केवल पूर्णांकों के लिए पूर्ण समझ में आते हैं, परंतु float पर भी लागू किए जा सकते हैं; जैसे 7.5 // 2 = 3.0 और 7.5 % 2 = 1.5। शून्य से भाग देने पर चाहे वह / हो या //, हमेशा ZeroDivisionError उत्पन्न होती है। इन नियमों की जानकारी से विद्यार्थी आउटपुट के प्रश्नों में गलतियों से बच सकता है।

त्वरित पुनरावृत्ति तालिकाएँ

तालिका 1: प्रीमेटिव और कम्पोज़िट डेटा प्रकार

श्रेणी डेटा प्रकार परिवर्तनीयता
प्रीमेटिव int Immutable
प्रीमेटिव float Immutable
प्रीमेटिव str Immutable
प्रीमेटिव bool Immutable
कम्पोज़िट list Mutable
कम्पोज़िट tuple Immutable
कम्पोज़िट dict Mutable
कम्पोज़िट set Mutable

तालिका 2: रूपांतरण फ़ंक्शन

फ़ंक्शन कार्य उदाहरण परिणाम
int(x) पूर्णांक में बदलना int("10") 10
float(x) फ़्लोट में बदलना float("3.5") 3.5
str(x) स्ट्रिंग में बदलना str(25) "25"
bool(x) बूलियन में बदलना bool(0) False

तालिका 3: अंकगणितीय ऑपरेटर और परिणाम (a=7, b=2)

ऑपरेटर अभिव्यक्ति परिणाम
+ a + b 9
- a - b 5
* a * b 14
/ a / b 3.5
// a // b 3
% a % b 1
** a ** b 49

माइंड मैप

graph TD A["डेटा हैंडलिंग"] --> B["डेटा प्रकार"] A --> C["टाइप रूपांतरण"] A --> D["संचालन"] A --> E["None और मेमोरी"] B --> F["प्रीमेटिव: int, float, str, bool"] B --> G["कम्पोज़िट: list, tuple, dict, set"] C --> H["इम्प्लिसिट (स्वचालित)"] C --> I["एक्सप्लिसिट (int(), float())"] D --> J["अंकगणितीय"] D --> K["स्ट्रिंग संचालन"] E --> L["None = NoneType"] E --> M["गार्बेज कलेक्टर"]

महत्वपूर्ण आरेख (SVG)

टाइप रूपांतरण इम्प्लिसिट (स्वचालित) int + float → float एक्सप्लिसिट (कास्टिंग) int(), float(), str() int(\"10\") = 10 float(\"3.5\") = 3.5 int(\"10.5\") → ValueError गलत रूपांतरण = ValueError/TypeError Golden Rule: अमान्य कास्टिंग से बचें
अपरिवर्तनीय प्रकार int, float, str, bool मान बदलने पर नई वस्तु बनती है list, dict, set मान स्थान पर ही बदल जाता है x = 5 फिर x = x + 1 नई वस्तु 6 बनती है, पुरानी गार्बेज गार्बेज कलेक्टर मेमोरी खाली करता है id() = वस्तु की पहचान संख्या स्वर्ण नियम: str, tuple अपरिवर्तनीय

सामान्य गलतियाँ

  1. int("10.5") जैसा अमान्य रूपांतरण करना; स्ट्रिंग को int() में बदलने के लिए उसमें वैध पूर्णांक होना चाहिए।
  2. किसी संख्या को शून्य से भाग देना, जिससे ZeroDivisionError उत्पन्न होती है।
  3. int और float के संचालन के परिणाम को int मान लेना; int + float हमेशा float देता है।
  4. स्ट्रिंग को संख्या से + के द्वारा जोड़ना, जैसे "उम्र: " + 16 से TypeError आती है।
  5. स्लाइसिंग में अंतिम इंडेक्स को शामिल समझना; s[0:5] में केवल पहले 5 वर्ण आते हैं।
  6. None को 0 या खाली स्ट्रिंग के बराबर मानना; None का प्रकार NoneType है।
  7. bool(0) और bool(5) दोनों को True मान लेना; bool(0) = False और bool(5) = True।

परीक्षा युक्तियाँ

  1. इम्प्लिसिट और एक्सप्लिसिट रूपांतरण के बीच अंतर उदाहरण सहित लिखें।
  2. रूपांतरण फ़ंक्शन (int, float, str, bool) के उदाहरण और उनके परिणाम याद रखें।
  3. int + float = float जैसे नियमों को स्पष्ट रूप से लिखें।
  4. स्ट्रिंग संचालन (संयोजन, पुनरावृत्ति, स्लाइसिंग) के उदाहरण दें।
  5. None की परिभाषा और उसके प्रकार (NoneType) को लिखें।
  6. type() और isinstance() के उपयोग को उदाहरण सहित समझाएँ।
  7. शून्य से भाग पर आने वाली त्रुटि (ZeroDivisionError) का नाम और कारण लिखें।

निष्कर्ष

डेटा हैंडलिंग अध्याय में हमने पाइथन में डेटा के प्रकार, रूपांतरण और संचालन की पूरी प्रणाली समझी। प्रीमेटिव और कम्पोज़िट डेटा प्रकारों का वर्गीकरण, इम्प्लिसिट और एक्सप्लिसिट रूपांतरण, अंकगणितीय और स्ट्रिंग संचालन, तथा None और मेमोरी प्रबंधन की अवधारणाएँ विद्यार्थी को कुशल कोड लिखने में सहायक हैं। गलत रूपांतरण और शून्य से भाग जैसी सामान्य त्रुटियों से बचकर विद्यार्थी सुरक्षित प्रोग्राम लिख सकता है। यह अध्याय नियंत्रण प्रवाह, स्ट्रिंग्स, लिस्ट्स, टपल्स और डिक्शनरी जैसे अगले अध्यायों के लिए पक्का आधार तैयार करता है।