কিভাবে পাইথন জেনারেটর তৈরি এবং ব্যবহার করবেন

Kibhabe Pa Ithana Jenaretara Tairi Ebam Byabahara Karabena



একজন বিকাশকারী হিসাবে কাজ করার সময়, আপনাকে প্রায়শই অনেক নগণ্য ডেটা মান নিয়ে কাজ করতে হবে। এই মানগুলি সংরক্ষণ করা মেমরির একটি অংশ গ্রহণ করে, আপনার কোডের কার্যকারিতা হ্রাস করে। যাইহোক, পাইথনে, আপনি সেই ক্ষতি এড়াতে জেনারেটর ব্যবহার করতে পারেন।

জেনারেটরগুলির সাহায্যে, আপনি মেমরিতে সম্পূর্ণরূপে সংরক্ষণ না করে একটি নির্দিষ্ট অনুক্রমের মানগুলিকে ভর-উৎপাদন করতে পারেন। তদুপরি, 'জেনারেটর' ফাংশনটি একটি বস্তু তৈরি করে যা পুনরায় পুনরাবৃত্তি করার সময় মান তৈরি করে। সুতরাং, আপনি যদি পাইথন জেনারেটরগুলিতে হাত পেতে চান তবে এই টিউটোরিয়ালটি আপনার জন্য। এখানে, আমরা ব্যাখ্যা করব কিভাবে পাইথন জেনারেটর তৈরি এবং ব্যবহার করতে হয়।

কীভাবে পাইথন জেনারেটর তৈরি এবং ব্যবহার করবেন

পাইথন জেনারেটরগুলি ডাটা সিকোয়েন্সে কার্যকরভাবে কাজ করতে ব্যবহৃত হয়, প্রধানত বড় বা প্রায় অন্তহীন ডেটাসেটগুলির সাথে কাজ করার সময়। পাইথন জেনারেটরের সুবিধা হল:







  1. সংক্ষিপ্ত: আপনি একটি সংক্ষিপ্ত পদ্ধতিতে জেনারেটরগুলিকে সহজেই সংজ্ঞায়িত করতে পারেন যা কোড পঠনযোগ্যতা উন্নত করে।
  2. মেমরি দক্ষ: তারা একই সাথে একটি একক মান তৈরি করে যা কম মেমরি খরচ করে এবং দক্ষতা উন্নত করে।
  3. অন্তর্নির্মিত ফাংশন: পাইথনে, জেনারেটরদের কাজ সহজ করার জন্য পরবর্তী(), iter(), এবং yield এর মতো পূর্বনির্ধারিত ফাংশন রয়েছে।
  4. বিরাম এবং পুনরায় শুরু বৈশিষ্ট্য: জটিল অ্যালগরিদমগুলিতে কাজ করার সময়, আপনি জেনারেটরগুলির ক্রিয়াকলাপকে বিরতি এবং পুনরায় শুরু করতে 'ফলন' ফাংশন ব্যবহার করতে পারেন।

আপনি পাইথনে বিভিন্ন উপায়ে জেনারেটর তৈরি এবং ব্যবহার করতে পারেন। আমরা বিভিন্ন উদাহরণ ব্যবহার করে এর বাস্তবায়ন প্রদর্শনের জন্য এই বিভাগটিকে আরও বিভক্ত করব। প্রথমে, আসুন মৌলিক সিনট্যাক্সটি একবার দেখে নেওয়া যাক:



ডিফ func_name ( ) :
ফলন অভিব্যক্তি

'def' একটি ফাংশন সংজ্ঞায়িত করে, এবং 'উৎপাদন' ব্যবহার করা হয় 'জেনারেটর' ফাংশন তৈরি করতে। যাইহোক, আরেকটি পদ্ধতি শুধুমাত্র এক-লাইন এক্সপ্রেশন ব্যবহার করে একটি জেনারেটর তৈরি করতে সাহায্য করে।



জেনারেটর ফাংশন একটি স্ট্রিং ফলন

কিছু মান দিতে একটি জেনারেটর ফাংশন সংজ্ঞায়িত করা যাক:





ডিফ জেনারেটর ( ) :
ফলন 'এটি একটি জেনারেটর'
জন্য মান ভিতরে জেনারেটর ( ) :
ছাপা ( মান )

যখন আমরা একটি 'ফর' লুপ ব্যবহার করে এটির উপর পুনরাবৃত্তি করি, প্রোগ্রামটি নির্দিষ্ট মান তৈরি করে যা আপনি 'প্রিন্ট' ফাংশন ব্যবহার করে প্রিন্ট করতে পারেন।



একটি কাউন্টার তৈরি করতে জেনারেটর ফাংশন

নিম্নলিখিত প্রোগ্রামটি সংখ্যার একটি ক্রম তৈরি করতে জেনারেটর ফাংশনের উদাহরণ:

ডিফ my_generator ( n ) :
পাল্টা = 0
যখন পাল্টা < n:
ফলন পাল্টা
পাল্টা + = 1
জন্য পাল্টা ভিতরে my_generator ( 10 ) :
ছাপা ( পাল্টা )

উদাহরণস্বরূপ, যদি ইনপুট 10 হয়, আপনি এই কোডটি কম্পাইল করার পরে 0 থেকে 9 পর্যন্ত মান পাবেন।

জেনারেটর ফাংশন ব্যবহার করে ফিবোনাচি সিরিজ

এখন ফিবোনাচ্চি সিরিজ ব্যবহার করা যাক যা প্রোগ্রামিংয়ের সবচেয়ে মৌলিক সিরিজ:

ডিফ সিরিজ_ফিবোনাচি ( সীমা ) :
i , j = 0 , 1
যখন i < সীমা:
ফলন i
i , j = j , i + j

= সিরিজ_ফিবোনাচি ( 6 )

ছাপা ( পরবর্তী ( ) )
ছাপা ( পরবর্তী ( ) )
ছাপা ( পরবর্তী ( ) )
ছাপা ( পরবর্তী ( ) )
ছাপা ( পরবর্তী ( ) )
ছাপা ( পরবর্তী ( ) )

আমরা কোডটি চালানোর মাধ্যমে নিম্নলিখিত সিরিজটি পাব:

প্রথমে, 'a' নামে একটি অবজেক্ট তৈরি করুন এবং একটি আর্গুমেন্ট হিসাবে পছন্দসই ইনপুট সহ 'জেনারেটর' ফাংশনটিকে কল করুন।

পরবর্তী() কীওয়ার্ডটি একটি ম্যানুয়াল পুনরাবৃত্তিকারী। প্রতিবার যখন আমরা পরবর্তী(a) ব্যবহার করি, তখন এটি 'a' এর একটি মানের উপর পুনরাবৃত্তি করে। যাইহোক, আমরা নিম্নলিখিত উদাহরণে দেখানো হিসাবে একবারে 'a' এর সমস্ত মান প্রিন্ট করতে 'for' লুপ ব্যবহার করতে পারি:

পরবর্তী() ফাংশনের পরিবর্তে 'for' লুপ ব্যবহার করা:

ডিফ সিরিজ_ফিবোনাচি ( সীমা ) :
i , j = 0 , 1
যখন i < সীমা:
ফলন i
i , j = j , i + j

= সিরিজ_ফিবোনাচি ( 6 )
জন্য মান ভিতরে একটি:
ছাপা ( মান )

কোড চালানোর ফলাফল ভিন্ন হবে না কারণ এটি পূর্ববর্তী প্রোগ্রাম লেখার একটি বিকল্প পদ্ধতি:

পাইথনে জেনারেটর এক্সপ্রেশন কি?

পাইথন জেনারেটর এক্সপ্রেশনগুলি লিনিয়ার এক্সপ্রেশন ব্যবহার করে সংক্ষিপ্তভাবে 'জেনারেটর' ফাংশন তৈরি করার একটি উপায়। এখানে সহজ সিনট্যাক্স আছে:

( অভিব্যক্তি জন্য পরিবর্তনশীল ভিতরে পুনরাবৃত্তিযোগ্য যদি অবস্থা )

উদাহরণস্বরূপ, 0 থেকে 'n' পর্যন্ত বিজোড় সংখ্যার বর্গ গণনা করার জন্য একটি জেনারেটর এক্সপ্রেশন তৈরি করুন যখন 'n' ইনপুট মান হয়।

বিজোড়_বর্গ = ( x * x জন্য এক্স ভিতরে পরিসীমা ( 10 ) যদি এক্স % 2 != 0 )
জন্য মান ভিতরে বিজোড়_বর্গ:
ছাপা ( মান )

পূর্ববর্তী কোড নিম্নলিখিত ফলাফল দেয়:

উপসংহার

এটি পাইথন জেনারেটর তৈরি এবং ব্যবহার করার বিভিন্ন পদ্ধতি সম্পর্কে। আমরা পাইথন জেনারেটর এক্সপ্রেশন সম্পর্কে সবকিছু ব্যাখ্যা করেছি। আপনি যদি আপনার কোন প্রকল্পে জেনারেটর ব্যবহার করার কথা বিবেচনা করেন তবে আপনার এই অভিব্যক্তিগুলি ব্যবহার করা উচিত কারণ তারা প্রতিটি প্রোগ্রামিং দিক থেকে আরও দক্ষ।