green snake

পাইথনের সাথে কথোপকথোন

কম্পিউটার এমন একটা লক্কর-ঝক্কর মার্কা যন্ত্র যে আপনি যদি তাকে বাংলা অথবা ইংরেজি ভাষায় কিছু বলেন সে কিছই বুঝবে না। সে খালি একটা জিনিসই বোঝে – তার কোন সার্কিটে বিদ্যুত আছে (ধরলাম ১) আর কোন সার্কিটে নাই (ধরলাম ০)। তার এই ১১০১০০১০১০ ইত্যাদি ভাষা আবার আমাদের বোঝা সম্ভব না। তাই মধ্যবর্তী আরো একটা ভাষা লাগবে। এই ভাষা হলো প্রোগ্রামিং ভাষা। যাই হোক অতি সরলীকৃত কথাবার্তায় কান না দিলেও চলবে।

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

>>> print(“WOW python is easy!”)

সে আপনাকে দেখাবে:

WOW python is easy!

মাত্র এক লাইনের কমান্ড।

কিন্তু অন্যান্য ভাষায় আপনাকে পাঁচ থেকে সাত লাইন লিখতে হবে এই একই কাজ করার জন্য। সুতরাং পাইথন সোজা এবং অনেক সোজা!

তাই বলে ভাববেন না যে অন্য কোন ভাষা শেখার দরকার নাই। কিংবা কেবল পাইথন দিয়েই সব কাজ করা যাবে। আসলে তা না। ভালো প্রোগ্রামার হতে হলে বেশ কয়েকটা ভাষা শেখা দরকার। আমি খালি বুঝাতে চাচ্ছিলাম যে পাইথন শেখাটা সহজ। তাই অনেক শিক্ষা প্রতিষ্ঠানে এখন প্রথম ভাষা হিসেবে ছাত্রদের পাইথন শেখানো হয়। গুগল, নাসা, সার্ন এদের মতো হোমড়া-চোমড়ারা পাইথন ব্যবহার করে। আর লিনাক্সে অনেক প্রোগাম লেখা হয় পাইথন দিয়ে।

কেন প্রোগ্রামিং শিখছি?

আমি কম্পিউটার ব্যাকগ্রাউন্ডের কেউ না। আমার বিষয় জীববিজ্ঞান।

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

এর একটা কারণ আছে। কম্পিউটার হলো একটা টুল – স্ক্র ডাইভার অথবা প্লায়ার্সের মতো। একটা কাজের যন্ত্র। সে আমার সমস্যা সমাধান করে দেবে। এ সমস্যা তাকে বোঝাতে হবে প্রোগ্রামিং ল্যাঙ্গুয়েজের মাধ্যমে।

যারা বায়োলজি/বায়োক্যামিস্ট্রি/ইকোনমিক্সে পড়ে তাদের কম্পিউটার ব্যবহার করতে হয়। তাদের সমস্যা তারাই সবচাইতে ভালো বুঝবে – একজন ভাড়া করা প্রোগ্রামারের চাইতে। এ জন্য মোটামুটি সব জায়গায় প্রোগ্রামিং শেখানো হয়। আমিও একই কারণে প্রোগ্রামিং শিখতে আগ্রহী।

কম্পিউটার একটা টুল। এটাকে আমার ইচ্ছা মতো চালানো দরকার।

কোন ভাষায় কোডিং শেখা মানে প্রোগ্রামিং শেখা নয়

কোন ভাষায় কোডিং শিখতে দুই থেকে ছয় মাস পর্যন্ত লাগতে পারে। কিন্তু সেগুলোকে প্রোগ্রামে ব্যবহার করা শেখাটাই হলো আসল কথা।

আমরা জাপানী ভাষার ব্যাকরণ জানতে পারি। দুইশ থেকে ছয়শো শব্দ শিখতে পারি। তা হলেই কিন্তু জাপানীভাষায় কোন সুন্দর কবিতা আমরা লিখতে পারবো না। এর জন্য দরকার হবে দীর্ঘ চর্চা। একই কথা প্রোগ্রামিঙের জন্যও প্রযোজ্য। আমার এখন লক্ষ্য হলো কোড এবং তাদের ব্যবহার শেখা।


নবীনদের প্রোগ্রামিং শেখার জন্য পাইথন বেশ ভালো

যেহেতু পাইথনে কোন কমান্ড দিতে বেশি লিখতে হয় না অন্য ভাষাগুলোর তুলনায়, সেহেতু একজন নবীন শিক্ষার্থী সহজেই কোডিঙের খুঁটিনাটির চাইতে সামগ্রিক প্রোগ্রামের দিকে লক্ষ্য রাখতে পারেন। 

তো শুরু করা যাক পাইথনের সাথে কথোপকথন!

পাইথন অত্যন্ত মজার জিনিস। আমি ধরে নিচ্ছি পাইথন প্রোগ্রামটা আপনারা ইতিমধ্যে কম্পিউটারে ডাউনলোড করে নিয়েছেন। আমি ব্যবহার করছি পাইথন IDLE। এই আইডল মানে অবশ্য অলস না!

অবশ্য আপনি যদি উবুন্টু/লিনাক্স/ম্যাক ব্যবহারকারী হন তাহলে পাইথন আলাদা ইন্সটল না করলেও চলবে। কারণ পাইথন ইনস্টল করাই থাকে ইউনিক্স বেজড অপারেটিং সিস্টেমে। এজন্য টার্মিনালে গিয়ে লিখুন python। তাহলে পাইথন শেল চলে আসবে টার্মিনালে।

আইডল খুললে প্রথমে একটা জানালা(উইন্ডো) দেখা যায়। ওই জানালাতে দেখবেন হিজিবিজি কিছু কথাবার্তা লেখা আছে। এই জানালাকে বলে পাইথন শেল। শেলের প্রথমে প্রোগ্রামটা সম্পর্কে নানা কথাবার্তার পর দেখবেন “>>>” চিহ্ন দেখা যায়। এই চিহ্নকে বলে প্রম্পট। এই চিহ্ন দেখার সাথে সাথেই বুঝবেন পাইথন আপনার সাথে কথাবার্তা বলার জন্য প্রস্তুত।

এটাকে বলে পাইথনের ইন্টারপ্রেটার বা শেল। আমরা পাইথন শেলকে ছোটখাটো কথাবার্তা বলার জন্য ব্যবহার করবো। শেলের বিশেষত্ব হচ্ছে এর মাধ্যমে পাইথন সরাসরি আপনার সাথে কাজ করবে। আপনি কোন একটা কমান্ড দেয়ার সাথে সাথেই পাইথন তা পালন করবে।

প্রথম নির্দেশ

>>> print(“This is time to code!”)

পাইথন আউটপুট দেখাবে: This is time to code!

এখনে প্রিন্ট একটা নির্দেশ। প্রিন্টের পর ” ” এর মাঝে যা থাকবে পাইথন তা প্রিন্ট করে দেবে। ” ” এর বদলে ‘ ‘ ব্যবহার করা যায়। অথবা ”’ ”’ ব্যবহার করা যায়।

কাজ

এখন সময় এসেছে ইচ্ছা মতো কোন কিছু পাইথনকে দিয়ে কোন কিছু প্রিন্ট করার। আপনার নাম,ঠিকানা ইত্যাদি ইত্যাদি পাইথনকে দিয়ে প্রিন্ট করান।

আপনি চাচ্ছেন একাধিক লাইনে কোন কিছু প্রিন্ট করতে। যেমন:

Imagine all the people,
living for today.

আপনি প্রিন্ট দিলেন

>>>print(‘Imagine all the people,
living for today’)

তখন কিন্তু পাইথন দুই লাইনে কিছু দেখাবে না। কিছু হ-য-ব-র-ল দেখাবে যার মানে হলো আপনি এইভাবে কিছু লিখতে পারবেন না। আপনার কোডটা অবৈধ হয়েছে।

তাহলে উপায়? আছে। আপনি যদি ”’ ”’ এর মধ্যে কিছু লেখেন, পাইথনে তখন ইচ্ছে মতো লাইন আপনি ব্যবহার করতে পারবেন।

তাহলে এখন আপনার জন্য নতুন কাজ নিচের ছাগুটাকে প্রিন্টের ব্যবস্থা করুন।

\      /
 \____/
 |o o|
 |   |
  \@/


প্রিন্ট করার অন্য পদ্ধতি:

নিচের কোডটা খেয়াল করুন

>>>a = ‘This is a text to print’
>>>print(a)

ফলাফল:
This is a text to print

এখানে খুব গুরুত্বপূর্ণ একটা কাজ করা হয়েছে। এখানে a কে বলা হয় ভ্যারিয়েবল বা চলক। এটা একটা সিলের মতো। অথবা ট্যাগের মতো। আমরা সরাসরি টেক্সটকে প্রিন্ট করছি না। টেক্সটকে আমরা a ভ্যারিয়েবল দিয়ে ট্যাগ করেছি। তারপর print a কমান্ড দিয়ে ওই ট্যাগ/ভ্যারিয়েবলকে প্রিন্ট করতে বলছি। যেহেতু আগেই আমরা ঘোষণা করে দিয়েছি যে a এর মান আসলে This is a text to print, পাইথন এই মানটাকেই প্রিন্ট করে দেয়।

সামনে ভ্যারিয়েবল দিয়ে আমাদের অনেক গুলো কাজ করতে হবে। তাই ভ্যারিয়েবল নিয়ে বিশেষ আলোচনারও দরকার হবে।


প্রিন্ট দিয়ে আরো জটিল কাজ-কারবার

নিচের টেক্সট প্রিন্ট করতে চান যেখানে কিনা অ্যাপস্টপি এস আছে। কি করবেন?

‘Do you still live in your father’s hotel?’

এটা প্রিন্ট করতে গিয়ে দেখবেন পাইথন দেখাচ্ছে Invalid syntax. কারণ কি? সে প্রথম দুইটি কমা নিয়ে চিন্তা ভাবনা করছে। এক্ষেত্রে, নিচের কাজটা করা যেতে পারে:

>>>print(“Do you still live in your’s father’s hotel?”)

তাহলে পাইথন ঠিকঠাক ভাবে জিনিসপত্র দেখাবে। আর যদি আপনি বলেন না আমি ‘ ‘ এর মধ্যেই জিনিসপাতি প্রিন্ট করাইতে চাই তাহলেও আপনার জন্য অপশন আছে।

>>>print(“Do you live in your\’s father\’s hotel?”)

এখানে ‘\’ চিহ্নটা লক্ষ্য করুন। এটি কিন্তু ভাগ না। এর মাধ্যমে আপনি পরের ‘ চিহ্ন টা যে আসলে টেক্সটের শেষ না সেটাই পাইথনকে বুঝাচ্ছেন।

এখন এ কমান্ডগুলো ব্যবহার করে ইচ্ছেমতো কাজ করতে থাকুন। মনে রাখবেন, কমান্ড শেখার একমাত্র উপায় হলো চর্চা। যত চর্চা করবেন, ততো কমান্ড আপনার মনে থাকবে।


“বায়োইনফরমেটিক্স প্রজেক্টে কিভাবে ভাবতে হয়” এটা নিয়ে আমি একটা ছোট ই-বুক তৈরি করেছি। ই-বুকটি পেতে চাইলে নিচের ফর্মে আপনার নাম ও ইমেইল ঠিকানা দিন।

ধন্যবাদ!

The Bioinformatics Newsletter

I often explore new tools and techniques for various bioinformatics analyses. Often these adventures yield no results. But sometimes they are fruitful, and I incorporate them into my project workflows.

My proposal to you is that I will write sporadic newsletters. The main content of this newsletter will be my experiments: what tool I explored, what worked, how it worked, and why I am using it, etc.

Do you think you would like to read these monologues? If this is something that resonates with you, please subscribe. 🙂

Join 95 other subscribers

Comments

Leave a Reply