কম্পিউটার টিউটোরিয়াল

পাইথনে জেনারেটর ব্যবহার করে ইটারেটর তৈরি করা সম্ভব কি?

হ্যাঁ, পাইথনে জেনারেটর ব্যবহার করে ইটারেটর তৈরি করা যায়। ইটারেটর তৈরি করা খুব সহজ: আমরা yield কীওয়ার্ড ব্যবহার করে একটি জেনারেটর ফাংশন লিখতে পারি।

পাইথন জেনারেটর ইটারেটর তৈরির একটি সহজ ও সরল পদ্ধতি। এটি মূলত একটি ফাংশন ঘোষণা করে যা ইটারেটর처럼 আচরণ করে।

জেনারেটর হল একটি ফাংশন যা একবারে এক মান প্রদান করে এবং তার ওপর ইটারেট করা যায়। দৈনন্দিন প্রোগ্রামিং-এ প্রায় প্রতিটি প্রোগ্রামার লিস্ট, স্ট্রিং, ডিকশনারি ইত্যাদি ইটারেবল অবজেক্ট ব্যবহার করে।

ইটারেটর হল এমন একটি অবজেক্ট যার ওপর লুপ চালিয়ে ইটারেট করা যায়।

নিচের উদাহরণে দেখানো হয়েছে যে জেনারেটর কীভাবে পাইথনে yield স্টেটমেন্ট ব্যবহার করে এবং এটি একটি মান রিটার্ন করার মতো কাজ করে।

উদাহরণ

def generator(): 
    print("প্রোগ্রাম সফলভাবে চলছে") 
    yield 'x' 
    yield 'y' 
    yield 'z' 

generator()

আউটপুট

<generator object generator at 0x000000CF81D07390>

for লুপ ব্যবহার করেও জেনারেটর থেকে মান পাওয়া যায়।

উদাহরণ

for i in generator(): 
    print(i)

আউটপুট

প্রোগ্রাম সফলভাবে চলছে 
x 
y 
z

ইটারেটর অবজেক্ট দুটি পদ্ধতি সমর্থন করে: ১. __iter__ মেথড এবং ২. __next__ মেথড।

  • __iter__ মেথডটি ইটারেটর অবজেক্টটিই রিটার্ন করে। এটি মূলত for লুপ এবং in স্টেটমেন্টে ব্যবহৃত হয়।
  • __next__ মেথডটি ইটারেটর থেকে পরবর্তী মান রিটার্ন করে। যদি আর কোনো আইটেম না থাকে তবে StopIteration এক্সেপশন উত্থাপন করা উচিত।

উদাহরণ

class TemperatureRange(object): 
    def __init__(self, low_temp, high_temp): 
        self.current = low_temp 
        self.high = high_temp 
    def __iter__(self): 
        'ইটারেটর অবজেক্ট হিসেবে নিজে কে রিটার্ন করে' 
        return self 
    def __next__(self): 
        'current high থেকে ছোট থাকা পর্যন্ত পরবর্তী মান রিটার্ন করে' 
        if self.current > self.high: 
            raise StopIteration 
        else: 
            self.current += 1 
            return self.current - 1 

c = TemperatureRange(3, 20) 
for i in c: 
    print(i, end=' ')

আউটপুট

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  1. Matplotlib দিয়ে Python-এ 3D স্ক্যাটার প্লট তৈরি করার পদ্ধতি

  2. পাইথনে Matplotlib ব্যবহার করে পুনরাবৃত্তিমূলকভাবে একাধিক প্লট তৈরি করা

  3. Python-এ Matplotlib ব্যবহার করে হিস্টোগ্রাম কীভাবে তৈরি করা যায়?

  4. Python-এ Matplotlib ব্যবহার করে সাইন ফাংশন কীভাবে তৈরি করা যায়?