Python For Kids · पाठ

Generators

Generators और Iterators बनाने में उनके उपयोग को समझें

पाठ 2, कुल 5 में से11 चरण

Generators, CoddyKit पर Python For Kids का एक निःशुल्क पाठ है। यह 5 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Python For Kids सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Python For Kids पाठ्यक्रम में कुल 5 पाठ शामिल हैं।

जनरेटर का परिचय

जनरेटर Python में इटरेटर का एक विशेष प्रकार हैं, जो आपको डेटा पर धीमे-धीमे इटरेट करने की अनुमति देते हैं। सारा डेटा एक साथ लौटाने के बजाय, वे एक बार में एक आइटम प्रदान करते हैं, जिससे मेमोरी की बचत होती है।

इस पाठ में आप Python में जनरेटर बनाना और उनका उपयोग करना सीखेंगे।

Generators — चित्र 1

जनरेटर क्या है

जनरेटर एक ऐसा फ़ंक्शन है जो मानों को एक-एक करके लौटाने के लिए yield कीवर्ड का उपयोग करता है। जनरेटर के next() विधि को हर बार कॉल करने पर निष्पादन वहीं से फिर शुरू होता है जहाँ पिछली बार मान लौटाया गया था।

# Basic generator example
def my_generator():
    yield 1
    yield 2
    yield 3

# Using the generator
gen = my_generator()
print(next(gen))  # Outputs: 1
print(next(gen))  # Outputs: 2
print(next(gen))  # Outputs: 3

जनरेटर कैसे काम करते हैं

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

# Example: Generating a range of numbers
def range_generator(start, end):
    while start < end:
        yield start
        start += 1

for number in range_generator(1, 5):
    print(number)  # Outputs: 1, 2, 3, 4

जनरेटर व्यंजक

जनरेटर व्यंजक सूची कॉम्प्रिहेंशन के समान होते हैं, लेकिन इनमें वर्गाकार कोष्ठकों के बजाय गोल कोष्ठकों का उपयोग किया जाता है। ये सूचियों के बजाय जनरेटर बनाते हैं।

# Generator expression
gen_exp = (x * x for x in range(5))

for value in gen_exp:
    print(value)  # Outputs: 0, 1, 4, 9, 16

जनरेटर बनाम सूचियाँ

जनरेटर सूचियों की तुलना में मेमोरी का अधिक कुशलता से उपयोग करते हैं, क्योंकि वे सारा डेटा मेमोरी में संग्रहीत नहीं करते। इसके बजाय, वे आवश्यकता के अनुसार डेटा उत्पन्न करते हैं।

# Comparing lists and generators
# List comprehension
list_comp = [x * x for x in range(1000000)]

# Generator expression
gen_exp = (x * x for x in range(1000000))

# List comprehension uses more memory
print(type(list_comp))  # Outputs: <class 'list'>
print(type(gen_exp))    # Outputs: <class 'generator'>

जनरेटर के उपयोग के मामले

जनरेटर इन कार्यों के लिए आदर्श हैं:

  • ऐसे बड़े डेटा-समुच्चयों को संसाधित करना जो मेमोरी में फिट नहीं होते।
  • अनंत अनुक्रम उत्पन्न करना।
  • डेटा का धीमा मूल्यांकन करना।

अनंत जनरेटर

जनरेटर अनंत अनुक्रम उत्पन्न कर सकते हैं, जैसे संख्याओं का कभी समाप्त न होने वाला अनुक्रम। अनंत निष्पादन को रोकने के लिए लूप को रोकना सुनिश्चित करें।

# Infinite generator example
def infinite_sequence():
    num = 0
    while True:
        yield num
        num += 1

# Using the infinite generator
for i in infinite_sequence():
    if i > 5:
        break
    print(i)  # Outputs: 0, 1, 2, 3, 4, 5

एकाधिक yield वाले जनरेटर फ़ंक्शन

जनरेटर फ़ंक्शन में कई yield कथन हो सकते हैं, जिससे आप जटिल अनुक्रम बना सकते हैं:

# Multiple yields in a generator
def multi_yield():
    yield "First"
    yield "Second"
    yield "Third"

for value in multi_yield():
    print(value)  # Outputs: First, Second, Third

जनरेटर से जुड़ी सामान्य गलतियाँ

इन गलतियों से बचें:

  • जनरेटर फ़ंक्शन में yield के बजाय return का उपयोग करना।
  • लूप या next() से जनरेटर के आइटम प्राप्त न करना।
  • ऐसे छोटे डेटा-समुच्चयों के लिए जनरेटर का उपयोग करना जहाँ सूचियाँ अधिक उपयुक्त होती हैं।

हमने क्या सीखा?

इस पाठ में आपने सीखा:

  • जनरेटर क्या होते हैं और वे Python में कैसे काम करते हैं।
  • जनरेटर फ़ंक्शन बनाने के लिए yield का उपयोग कैसे करें।
  • जनरेटर और सूचियों के बीच अंतर।
  • जनरेटर के उपयोग, जैसे अनंत अनुक्रम और बड़े डेटासेट।

बहुत अच्छा! अब अगले विषय पर चलते हैं।

Generators — चित्र 11
शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
94

अक्सर पूछे जाने वाले प्रश्न

क्या “Generators” पाठ निःशुल्क है?

हाँ—“Generators” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Python For Kids पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Python For Kids पाठ्यक्रम में कुल 5 पाठ शामिल हैं।

“Generators” में मैं क्या सीखूँगा?

Generators और Iterators बनाने में उनके उपयोग को समझें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Python For Kids का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Python For Kids शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Python For Kids शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 5 में से 2वाँ पाठ है।

“Generators” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Python For Kids पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Python For Kids पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Decorators
  2. Generators
  3. Context Managers (with Statements)
  4. Comprehensions (List, Set और Dictionary)
  5. Iterators और Iterables
← Python For Kids पर वापस जाएँ