
27
Julআমেরিকায় ইউনিভার্সিটি গুলোতে বিভিন্ন কোর্স ফাইনালে বৈধ উপায়ে নকল করার একটা খুব ভালো ব্যবস্থা আছে — চিট শিট (Cheat Sheet) । সাধারণত A4 সাইজের একটা সাদা কাগজে (প্রিন্টার পেপার) দুই পাশেই হাতে লিখে যত ইচ্ছা নোট করে আনা যায়। সব কোর্সে অবশ্য এটা সম্ভব না। এটা কোর্সের প্রফেসরের উপর নির্ভর করে। কিছু কিছু ছাত্র-ছাত্রীরা বিভিন্ন রঙের পেন্সিলে কুটি কুটি অক্ষরে পারলে পুরো বই লিখে নিয়ে আসে। প্রথমে শুনতে অবাক আর অবিশ্বাস্য লাগলেও একটু ভেবে দেখলে কিন্তু এই চিট শিটের উপকারিতা আর প্রয়োজনীয়তা বোঝা যায়। ভেবে দেখুন, একটা কোর্সের সব ফর্মুলা, সূত্র কিংবা ডেফিনিশন মুখস্ত করে মাথা ভরিয়ে তুলে তো আসলে লাভ নেই, ফর্মুলা বা সূত্র ব্যবহার করে সমস্যার সমাধান করতে পারাটাই আসল, তাই না? তাছাড়া, এই চিট শিট লিখতে গিয়ে ছাত্র-ছাত্রীরা যে পরিমান পড়াশুনা করবে, তাতে কোর্সের একটা খুব ভালো রিভিউ হয়ে যায় আর ভবিষ্যতেও এই চিট শিট একটা ভালো রেফারেন্স হিসাবে থাকতে পারে।
যাই হোক, আসল কথায় আসি। আমি এই সেমিস্টারে পাইথনের উপর যে দুটো কোর্স পড়িয়েছি (দুটোতেই ফাইনালে চিট শিটের ব্যবহারের অনুমতি ছিল) — মোটামুটি নিজে পড়ে তারপর পড়িয়েছি। আমি এর আগে জাভাতে কাজ করলেও পাইথনে এই প্রথম কিছু করলাম। আমার দৃষ্টিতে জাভা আর পাইথনের যে তফাৎ গুলো চোখে পড়েছে তার উপর এর আগের এক লেখায় লিখেছি। কিন্তু এখন কোর্স শেষ করার পর ভাবছিলাম নিজের জন্য পাইথনের উপর একটা চিট শিট লিখে রাখবো। কেননা যেকোনো প্রোগ্রামিং লাঙ্গুয়েজেই ছোট ছোট কিছু বিষয় আছে যেগুলো সবসময় কোডিং না করলে খুব সহজেই ভুলে যাওয়া যায়। নিচে পাইথনের তেমন কয়েকটা উদাহরণ দেই:
- পাইথনে সেট ব্যবহার করা হয় এইভাবে: mySet = {1, ‘Hello’, 2, True}. কিন্তু তাই বলে একটা খালি বা Empty সেট কিন্তু mySet = {} এইভাবে লিখলে হবে না। এটা একটা ডিকশনারি হয়ে যাবে। খালি বা এম্পটি সেট বানাতে লিখতে হবে mySet = set() [খেয়াল করুন Set() কিন্তু না]
- সেট থেকে কোনো একটা আইটেম রিমুভ করার সময় খুব সাবধানে করতে হয়। সেট এ নেই এমন কোনো আইটেম রিমুভ করতে গেলে কিন্তু এরর হবে, নিরাপদ হচ্ছে discard ফাংশন ব্যবহার করা। যেমন :
mySet = {1, 2}
mySet.remove(2) # This is okay
mySet.remove(3) # This will get KeyError
mySet.discard(3) # This will be okay, no errors
- পাইথন ডিকশনারিতে add বলে কোনো ফাংশন নেই। কোনো কী-ভ্যালু অ্যাড করতে চাইলে এভাবে লিখতে হবে: myDict[newKey] = newValue
- পাইথনে লিস্ট স্লাইসিং [List Slicing] ব্যাপারটা খুবই মজার। যেমন, নিচের লিস্ট থেকে প্রথম দুইটা আইটেম নেয়ার জন্য এভাবে লিখলেও চলবে:
aList = [‘one’, ‘two’, ‘three’, ‘four’, ‘five’]
first_two = aList[:2]
- লিস্ট স্লাইসিং-এর যে বিষয়টা প্রায়ই আমার ভুল হয়: alist[firstIndex, secondIndex] লিস্ট স্লাইসিং -এ secondIndex — আইটেমটা ইনক্লুডেড হবে না, এর আগেরটা পর্যন্ত হবে। অর্থাৎ aList[:2], শুরু থেকে ইনডেক্স ১ পর্যন্ত আইটেম গুলো নিবে। অর্থাৎ 0, 1 পজিশনের ২ টা আইটেম নিবে। কিছু উল্লেখ না থাকলে শুরু/শেষ থেকে ধরে নিতে হবে। একই ভাবে range(5) ফাংশন 0, 1, 2, 3, 4 পর্যন্ত ভ্যালু দিবে, 5 দিবে না।
- স্ট্রিং তৈরি করার জন্য index ভিত্তিক format : full_name = “{0} {1}”.format(‘Ishtiaque’, ‘Hussain’)
- পাইথন ক্লাস ডিক্লারেশনে সবগুলো ফাংশনে প্রথম আর্গুমেন্ট self হতে হবে, নাহলে কাজ করবে না।
- পাইথন ক্লাসের ভেতর কোনো এট্রিবিউট ভ্যারিয়েবল এক্সেস করতে হলে self. দিয়ে প্রিপেন্ড করতে হবে, অর্থাৎ self.attributeName — আকারে লিখতে হবে।
- পাইথন ক্লাস অন্য কোনো প্যারেন্ট ক্লাস থেকে ইনহেরিট করতে চাইলে প্যারেন্ট ক্লাস পারেনথেসিস-এর মধ্যে দিতে হবে। যেমন, class ChildDog(ParentDog):
খুঁজলে এরকম আরো অনেক ছোট ছোট বিষয় পাওয়া যাবে যেইগুলো দরকারের সময় মনে করা খুবই ঝামেলার। তখন সাধারণত গুগলই ভরসা। কিন্তু একটা চিট শিট তৈরি করা থাকলে চট করে দেখে নেয়া যায় আর মাঝে মাঝে অবসরে চোখ বুলিয়ে নিলে অনেক কিছূই ঝালাই হয়ে যায়।
এরকম একটা শিট বানাতে বসার আগে ভাবলাম একটু গুগলে সার্চ করে দেখা যাক কেউ অলরেডি করে রেখেছে কীনা। ভাগ্যিস করেছিলাম, আমি যেই বই ক্লাসে পড়াচ্ছি (Python Crash Course — By Eric Matthes), সেই বইয়ের লেখকই একটা পাইথন চিট শিট তৈরী করে রেখেছেন। ভদ্রলোককে মনে মনে আরেকবার বাহবা আর দোয়া দিয়ে পিডিএফ টা সেভ করা রাখলাম — কাজের জিনিস! আমার স্টুডেন্টদের সাথে লিংকটা শেয়ার করার পাশাপাশি একটা ব্লগ পোস্ট লেখার লোভটাও সামলাতে পারলাম না। আকারে ছোট আরেকটা ভালো চিট শিট এই লিংকে পাওয়া যাবে। আরো ভালো কোনো লিংক কারো জানা থাকলে বরাবরের মতোই অনুরোধ থাকলো কমেন্টে জানানোর । ধন্যবাদ।
02 Comment
mabiya khanJune 28, 2018 at 4:03 PM
Enim lacinia ultrices luctus ut nisl nulla, nobis proin amet, non lorem duis at. Eleend diam sed, nulla nulla nibh adipiscing blandit nunc, vitae sed
mabiya khanJune 28, 2018 at 4:03 PM
Enim lacinia ultrices luctus ut nisl nulla, nobis proin amet, non lorem duis at. Eleend diam sed, nulla nulla nibh adipiscing blandit nunc, vitae sed