python bangla tutorial full course

পাইথন প্রোগ্রামিং এর মৌলিক ধারণা বাংলা টিউটোরিয়াল  (Basics of Python Programming Bangla Tutorial)

Python Bangla tutorial full course

ভূমিকা (Introduction)

বর্তমানে বিভিন্ন ধরনের হাই লেভেল প্রােগ্রামিং ল্যাংগুয়েজ যেমন- বেসিক, সি, সি ++, জাভা, ওরাকল, কোবল, ফরট্রান,

অ্যাডা, লিসপ ইত্যাদির প্রচলন রয়েছে এবং প্রতিনিয়তই নিত্যনতুন নানা প্রােগ্রামিং ল্যাংগুয়েজও তৈরি হচ্ছে। তবে তাদের মধ্যে খুব

কম ভাষাই প্রােগ্রামারদের কাছে জনপ্রিয় হতে পেরেছে। এর জনক Guido Van Rossum। ১৯৮৯ সালের ডিসেম্বর মাসে

বড়দিনের ছুটিতে তিনি পাইথন তৈরি করা শুরু করেন এবং ১৯৯১ সালে এটি প্রথম পাবলিশ করা হয়। পাইথনের দুটি ভার্সন (2.x,

3.x) রয়েছে। এই দুটি ভার্সনের মধ্যে সিনট্যাক্সের পার্থক্যও রয়েছে, তাই এই কোর্সটি অনুসরণ করার ক্ষেত্রে আমরা ৩.৬ ভার্সনটি

ব্যবহার করেছি। 2.x ব্যবহার করলে কিছু কিছু জায়গায় এরর (Error) পাওয়া যাবে। ২০০৮ সালে পাইথন ৩.০ রিলিজ করা হয়

আর ২০১৬ সালে ৩.৬ রিলিজ করা হয়। ২০০০ সালে পাইথন, ২.০ সংস্করণ চালু হওয়ার পরে এটি বেশি জনপ্রিয় হয়ে ওঠে।

বর্তমানে পাইথনের ২.৭ এবং ৩.৬ সংস্করণ দুটি চালু আছে।

পাইথন ভাষার মুক্ত কমিউনিটিভিত্তিক উন্নয়ন মডেল রয়েছে, যার দায়িত্বে রয়েছে পাইথন সফটওয়্যার ফাউন্ডেশন নামের একটি

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

তবে কার্যত সি পাইথন ভাষাটির আদর্শ বাস্তবায়িত রূপ।

প্রােগ্রামিং ল্যাংগুয়েজ হিসেবে পাইথন (Python as a programming language) :

পাইথন একটি হাই লেভেল, আবজেক্ট অরিয়েন্টেড, জেনারেল পারপাজ, ইন্টারপ্রিটেড, ইন্টারেকটিভ, সহজবােধ্য, উদ্দেশ্য

কেন্দ্রিক ও উচ্চমানের প্রােগ্রামিং ল্যাংগুয়েজ। পাইথনে স্ট্রাকচার্ড প্রােগ্রামিং, অবজেক্ট ওরিয়েন্টেড প্রােগ্রামিং ও ফাংশনাল প্রােগ্রামিং করা যায়।

' Monty Python Flying Circus' নামের একটি টিভি শাে'র নামানুসারে এর নামকরণ করা হয়; ' পাইথন' সাপের নাম অনুসারে নয়। এর সাের্স কোড GNU General Public License (GPL) এর অন্তর্ভুক্ত।

পাইথনের কোর সিনট্যাক্স ও সিমান্টিক্স খুবই সংক্ষিপ্ত এবং এর স্ট্যান্ডার্ড লাইব্রেরি অনেক সমৃদ্ধ। পাইথন ল্যাংগুয়েজটিকে

এমনভাবে তৈরি করা হয়েছে যাতে সহজে বুঝা যায় এটি অন্যান্য প্রােগ্রামিং ল্যাংগুয়েজ-এর মতাে যতি চিহ্ন (কমা, ব্র্যাকেট ইত্যাদি)

নির্ভর নয়, বরং কিছু ইংরেজি কী-ওয়ার্ড ব্যবহার করে ল্যাংগুয়েজটি তৈরি করা হয়েছে এবং এর শব্দবিন্যাসও তুলনামূলক সহজ।

এটি একটি পুরােপুরি ডাইনামিক প্রােগ্রামিং ল্যাংগুয়েজ অর্থাৎ পাইথনে প্রতিটি ভেরিয়েবলের জন্য আলাদা আলাদা ডাটা

টাইপ ডিক্লেয়ার করতে হয় না। যেখানে সি, সি ++, জাভা’র মতাে ল্যাংগুয়েজগুলাে ও স্ট্যাটিক। পাইথনের স্বনিয়ন্ত্রিত মেমরি ব্যবস্থাপনা রয়েছে।

> নতুন প্রােগ্রামারদের জন্য পাইথন খুবই জনপ্রিয় ও সহজ একটি ভাষা।

> পাইথনকে সহজ টেক্সট প্রসেসিং থেকে শুরু করে ওয়েব ব্রাউজার কিংবা গেমস ডেভেলপমেন্টসহ বহুমুখী কাজে ব্যবহার করা যায়।

> পাইথন অনেকটা PERL এবং PHP প্রােগ্রামিং এর মতাে যাতে প্রােগ্রাম সরাসার রান করা যায়। এতে রান করার আগে আলাদা করে কম্পাইল করতে হয় না।

> পাইথন একটি ইন্টারেকটিভ ল্যাংগুয়েজ অর্থাৎ প্রােগ্রাম লেখার সময় পাইথন prompt থেকে ইন্টারপ্রিটার এর সাথে সরাসরি মত বিনিময় করা যায়।


পাইথন একটি জনপ্রিয় ল্যাংগুয়েজ (Python as a popular language) :

জনপ্রিয়তার নিরিখে পাইথন হচ্ছে একটি অন্যতম জনপ্রিয় ল্যাংগুয়েজ। সারা পৃথিবীতে বর্তমানে জনপ্রিয়তার বিচারে পাইথনের

স্থান চতুর্থ (শীর্ষ তিনটি হচ্ছে জাভা, সি, সি ++)। যুক্তরাষ্ট্রের শীর্ষ বিশ্ববিদ্যালয়গুলাের ৬৯ শতাংশ শিক্ষার্থী পাইথন ব্যবহার করে

প্রােগ্রামিংয়ের সঙ্গে পরিচিত হয়। এ ছাড়া বিশ্ববিখ্যাত প্রতিষ্ঠান গুগলের তিনটি আনুষ্ঠানিক প্রােগ্রামিং ল্যাংগুয়েজের একটি হচ্ছে

পাইথন। পাইথন প্রােগ্রামাররা নিম্নবর্ণিত কারণে পাইথনকে জনপ্রিয় বলে মনে করেন

> এটি একটি সহজবােধ্য প্রােগ্রামিং ল্যাংগুয়েজ।

> এতে কোডিং করা খুব সহজ।

এর কোডিং সি বা জাভার চেয়ে তুলনামূলক অনেক ছােট হয়।

> এটি বিনামূল্যে ডাউনলােড করা যায় ও সহজে ইনস্টল করা যায়।

> এতে লিস্ট, ডিকশনারি ও সেটের মতাে চমৎকার সব ডাটা স্ট্রাকচার রয়েছে।

> শক্তিশালী অনলাইন কমিউনিটি।

> বিশাল ও কার্যকর স্ট্যান্ডার্ড লাইব্রেরি রয়েছে।

> বিভিন্ন অপারেটিং সিস্টেমে পাইথন ব্যবহার করা যায়।

> চমৎকার ওয়েব ফ্রেমওয়ার্ক (জ্যাঙ্গো, ফ্লাস্ক ইত্যাদি) বিদ্যমান |

> উইন্ডােজ ছাড়া মােটামুটি অন্য সব অপারেটিং সিস্টেমে (যেমন- লিনাক্স ও ম্যাক অপারেটিং সিস্টেম) পাইথন বিল্ট-ইন থাকে অর্থাৎ আলাদাভাবে ইনস্টল করতে হয় না।

পাইথনের ব্যবহার (Uses of python language) :

পাইথন একটি বিস্ময়কর এবং শক্তিশালী ল্যাংগুয়েজ বিধায় এর বহুমুখী ব্যবহার রয়েছে। সাধারণত দ্রুত সফটওয়্যার নির্মাণের

জন্য পাইথন ব্যবহৃত হয়। বিভিন্ন বড় বড় প্রকল্প যেমন- জোপ অ্যাপ্লিকেশন সার্ভার, এমনেট ডিস্ট্রিবিউটেড ফাইল স্টোর, ইউটিউব

ইত্যাদি প্রকল্পে এর ব্যবহার উল্লেখযােগ্য। তা ছাড়া বিশ্বের বহু নামকরা প্রতিষ্ঠান ও (যেমন- গুগল, নাসা) পাইথন ব্যবহার করেন।

নিম্নে পাইথনের কিছু উল্লেখযােগ্য ব্যবহার উল্লেখ করা হলাে ঃ

> ওয়েবভিত্তিক সফটওয়্যার তৈরিতে

> অটোমেশন সফটওয়্যার নির্মাণ

> বায়াে ইনফরমেটিকস

> মেশিন লার্নিং

> ন্যাচারাল ল্যাংগুয়েজ প্রসেসিং

> ওয়েব ক্রলার তৈরি

> ইমিউনিটি সিকিউরিটি টুলস

> গ্রাফিক্যাল ইউজার ইন্টারফেস তৈরি

> ওয়েব অ্যাপ্লিকেশন সিকিউরিটি স্ক্যানার

> ডাটাবেজ অ্যাপ্লিকেশন

সাইবার সিকিউরিটি

> ডিস্ট্রিবিউটেড প্রােগ্রামিং

> ইন্টারনেট স্ক্রিপ্টিং

> তথ্য বিশ্লেষণ

> কোর সিকিউরিটি টুলস।

পাইথনের ইতিহাস (History of python) :

পাইথনের ইতিহাস আমস্টারডাম নেদারল্যান্ড-এর CWI (Centrurn Wiskunde & informatica) কর্তৃক ডেভেলপকৃত
এবিসি প্রােগ্রামিং ল্যাংগুয়েজ এর ইতিহাসের সঙ্গে সম্পৃক্ত। 

১৯৮০ সালে সর্বপ্রথম পাইথনকে Conceptualized করা হয়েছিল।

১৯৮০ দশকের শেষের দিকে Guido Van Rossum তার খুব পছন্দের ৭০ দশকের একটি ব্রিটিশ টিভি শাে 'Monty Python
Flying Circus' এর নামানুসারে পাইথনের নামকরণ করেন । 

Guido Van Rossurm-ই পাইথনের প্রধান লেখক এবং বর্তমানে
পাইথনের উন্নয়নে তিনিই প্রধানতম নেতৃত্ব দিচ্ছেন। তাকে পাইথনের আজীবন পরিচালক হিসেবেও সম্মান দেয়া হয়েছে।

১৯৯১ সালে Guido Van Rossum পাইথনের কোড প্রকাশ করেন (ভার্সন ০.৯.০)। পাইথন ডিজাইনের এই ভার্সনে মডুলা৩ থেকে ধার করা বৈশিষ্ট্যসমূহ যেমন- ক্লাস, ইনহেরিটেন্স, এক্সেপশন হ্যান্ডলিং, ফাংশন ও প্রধান ডাটা টাইপ, list, dict, str
ইত্যাদি সংযুক্ত হয়। 

১৯৯৪ সালে পাইথনের প্রধান ফোরাম comp.lang.python গঠিত হয় এবং পাইথনের ব্যবহারকারীদের জন্য
তা মাইলফলক হিসেবে চিহ্নিত হয়।

১৯৯৪ সালের জানুয়ারিতে পাইথনের ১.০ সংস্করণ প্রকাশিত হয়। এই সংস্করণে lambda, map, filter এবং reduce এর মতাে ফাংশনাল প্রােগ্রামিং টুলসমূহ যুক্ত হয় । সিডব্লিউআই থেকে প্রকাশিত সর্বশেষ সংস্করণ হচ্ছে পাইথন ১.২। 

১৯৯৫ সালে Van
Rossum ভার্জিনিয়ার কর্পোরেশন ফর ন্যাশনাল রিসার্চ ইনিশিয়েটিভস (সিএনআরআই) প্রতিষ্ঠানে যােগদান করেন এবং এখান
থেকেই পাইথনের বেশ কয়েকটি সংস্করণ বের করেন।

১.৪ সংস্করণে এতে Keyword argument এর মতাে কিছু নতুন বৈশিষ্ট্য যােগ করা হয়, যাতে তথ্য লুকানাের জন্য বিশেষ ব্যবস্থা ছিল। 

সিএনআরআই-তে থাকাকালীন সময়েই Van Rossum কম্পিউটার প্রােগ্রামিং ফর এভরিবডি (সিপিই) উদ্যোগ গ্রহণ করেন, যাতে আরাে অনেক মানুষ কম্পিউটার প্রােগ্রামিং এর সুবিধা গ্রহণ এবং অল্প মৌলিক প্রােগ্রামিং জ্ঞানের (ইংরেজি ও গণিতের
জন্য সাধারণ যে জ্ঞান থাকা প্রয়ােজন) মাধ্যমে ছােটোখাটো সমস্যা সমাধান করতে পারে। সিএনআরআই থেকে পাইথনের সর্বশেষ
সংস্করণ হলাে পাইথন ১.৬।

২০০০ সালে পাইথনের মূল উন্নয়নকারী দল বিওপেন.কম এর সাথে যুক্ত হয়ে যৌথভাবে বিওপেন পাইথনল্যাবস গঠন করেন।
বিওপেন.কম থেকে প্রকাশিত প্রথম ও একমাত্র পাইথন ডিস্ট্রিবিউশন হলাে পাইথন ২.০। 

পাইথন ২.০ প্রকাশিত হওয়ার পর Van
Rossum ও অন্যান্য পাইথনল্যাবস কর্মীরা ডিজিটাল ক্রিয়েশন্স-এ যােগ দেন।

পাইথন ২.০ সংস্করণের অনেক বৈশিষ্ট্যই হ্যাস্কেল (Haskel) নামক ফাংশনভিত্তিক প্রােগ্রামিং ল্যাংগুয়েজ থেকে নেয়া।

হ্যাঙ্কেলের লিস্ট ও পাইথনের লিস্টের মধ্যে ও অনেক মিল রয়েছে। তাছাড়া পাইথন ২.০ সংস্করণে গারবেজ কালেকশন বৈশিষ্ট্যটি
ও যুক্ত করা হয়েছে যা নিয়মিতভাবে মেমরি পরিষ্কার করতে সক্ষম।

পাইথন ২.১ তৈরি করা হয়েছে পাইথন ১.৬.১ ও পাইথন ২.০ এর উপর ভিত্তি করে। এর লাইসেন্সের নাম পরিবর্তন করে রাখা
হয় পাইথন সফটওয়্যার ফাউন্ডেশন লাইসেন্স।

পাইথন ২.১ এর প্রকাশের পর এর সমস্ত কোড, ডকুমেন্টেশন ও স্পেসিফিকেশন
পাইথন সফটওয়্যার ফাউন্ডেশন (পিএসএফ) এর অধীনে চলে আসে। ২০০১ সালে অলাভজনক প্রতিষ্ঠান হিসেবে পিএসএফ গঠন
করা হয়। 

২.১ ভার্সনে স্কিম নামের একটি প্রােগ্রামিং ল্যাংগুয়েজের বৈশিষ্ট্য স্ট্যাটিক স্কোপিং যুক্ত করা হয়।
পাইথন ২.২ এর একটি প্রধান উদ্ভাবন হচ্ছে পাইথনের বিভিন্ন টাইপ (সি-তে লেখা টাইপসমূহ) ও ক্লাসকে (পাইথনে লেখা
টাইপসমূহ) একই গঠনের আওতায় নিয়ে আসা। এর ফলে পাইথনের অবজেক্ট মডেল অনেক স্থিতিশীল ও প্রকৃত অবজেক্ট
অরিয়েনটেড হয়েছে। 

এতে আরও যুক্ত করা হয়েছে জেনারেটর যেটি আইকন নামে একটি ভাষায় প্রথম ব্যবহৃত হয়েছে।

পাইথনের স্ট্যান্ডার্ড লাইব্রেরি ও সিনট্যাক্টিক্যাল ব্যবহার জাভা থেকে নেয়া হয়েছে। কোনাে কোনাে বৈশিষ্ট্য যেমন- logging
প্যাকেজ, যা যুক্ত হয়েছে ২.৩ ভার্সনে ।

এভাবেই পরবর্তীতে পর্যায়ক্রমে পাইথনের বিভিন্ন ভার্সনের আবির্ভাব ঘটে, যার সর্বশেষ সংস্করণ হচ্ছে ৩.৯.০।