সহজ ভাষায় পাইথন ৩ বুক কাভার

রকমারি থেকে অর্ডার করুন

এইখানে মূল বইয়ের ৬০% খসড়া আকারে বিনামূল্যে পড়ার জন্য দেওয়া হয়েছে। সম্পূর্ণ বইটি পড়ার জন্য কষ্ট করে আপনাকে হার্ডকপি কিনে নিতে হবে।

প্রাপ্তিস্থান

প্রতিষ্ঠান ঠিকানা ফোন নম্বর
মানিক লাইব্রেরী নীলক্ষেত, ঢাকা ০১৭৩৫-৭৪২৯০৮
রকমারি ডট কম অনলাইন ১৬২৯৭
হক লাইব্রেরী নীলক্ষেত, ঢাকা ০১৮২০-১৫৭১৮১
রূপান্তর বিডি ডট কম অনলাইন ০১৫১১-৫২২৫২৩

ডিকশনারি

আমরা ইতিমধ্যে লিস্ট ও টাপল সম্পর্কে জেনেছি। দুটোই পাইথনের স্মার্ট ডাটা টাইপ। কিন্তু ডিকশনারি পাইথনের সবচেয়ে স্মার্ট ডাটা টাইপ। ডিকশনারিকে আমরা লিস্টের সাথে তুলনা করতে পারি। কিন্তু লিস্টের সাথে এর অমিল অনেক। যেমন বলা যায়, ডিকশনারি ডিক্লেয়ার করা হয় {} চিহ্ন দিয়ে। আর ডিকশনারিতে লিস্টের মত ইনডেক্স থাকে না, তার বদলে থাকে কী। কী হিসেবে স্ট্রিং, ইন্টিজার, টাপল ব্যবহার করা যায়। তবে ['key'] এরকম কিছু ব্যবহার করা যাবে না। লিস্টে যেমন ইনডেক্স নম্বর একটা ভ্যালুকে নির্দেশ করে ঠিক তেমনি করে ডিকশনারিতে একটা কী (Key) একটা ভ্যালুকে নির্দেশ করে। এই ভ্যালুটা স্ট্রিং, ইন্টিজার, ফ্লোট, লিস্ট, টাপল, ডিকশনারি যেকোন টাইপেরই হতে পারে। ডিকশনারিতে সবগুলো আইটেম কমার (,) মাধ্যমে একে অপর থেকে আলাদা থাকে। প্রতিটা আইটেমে তিনটা অংশ থাকে। প্রথম অংশে থাকে কী, মাঝের অংশে থাকে কোলন চিহ্ন (:) সেপারেটর হিসেবে আর শেষাংশে থাকে ভ্যালু। একটা ডিকশনারির প্রতিটা কী ইউনিক হবে, একটার সাথে অপরটা মিলতে পারবে না। তবে একই ভ্যালু কয়েকবার থাকতে পারে।

>>> a = {}
>>> a
{}
>>> type(a)
<class 'dict'>
>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> type(a)
<class 'dict'>

একটা কথা বলতে ভুলে গেছি। a = {} এরকম না করেও আরেকভাবে ডিকশনারি ডিক্লেয়ার করা যায়।

>>> a = dict()
>>> a
{}
>>> type(a)
<class 'dict'>

অ্যাক্সেস আইটেম

লিস্টের মত করেই ডিকশনারির আইটেম অ্যাক্সেস করা যায়। পার্থক্য হল, লিস্টের ক্ষেত্রে [] এর ভিতর ইনডেক্স নম্বর ব্যবহার করতে হয় আর ডিকশনারির ক্ষেত্রে কী ব্যবহার করতে হবে। একটা উদাহরণ দেখা যাক:

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a['name']
'MD. Maksudur Rahman Khan'
>>> a['nickname']
'Maateen'
>>> a['email']
'maateen@outlook.com'
>>> a['phone']
'01711223344'

আপডেট ডিকশনারি

ডিকশনারির কোন আইটেমকে আপডেট করা খুবই সহজ কাজ। শুধু ঐ কী তে নতুন ডাটা অ্যাসাইন করলেই চলে। যেমন:

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a['name'] = 'Muhammad Maksudur Rahman Khan'
>>> a
{'name': 'Muhammad Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}

একেবারে নতুন একটা আইটেম যোগ করতে চাইলে নতুন একটা কী-ভ্যালু পেয়ার যোগ করলেই হয়। যেমন:

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a['hometown'] = 'Barisal'
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'hometown': 'Barisal', 'phone': '01711223344'}

আচ্ছা, যদি কখনো একটা ডিকশনারির সব আইটেমকে অন্য একটা ডিকশনারিতে যোগ করার দরকার পরে? তখন আমরা update() ফাংশনটা ব্যবহার করব। যে ডিকশনারিটা যোগ করব সেটা এর ভিতর দিয়ে দিলেই কেল্লাফতে।

>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> b = {'hometown' : 'Barisal', 'fav_poet' : 'Nazrul'}
>>> a.update(b)
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'fav_poet': 'Nazrul', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'hometown': 'Barisal', 'phone': '01711223344'}

আশা করি বুঝেছি সবাই।

সহজ ভাষায় পাইথন ৩

রিমুভ আইটেম, ডিকশনারি

ডিকশনারি থেকে একটা আইটেমকে রিমুভ করার জন্য আমরা del স্টেটমেন্টকে ব্যবহার করতে পারি।

>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'hometown': 'Barisal', 'phone': '01711223344'}
>>> del a['phone']
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'hometown': 'Barisal'}

যদি একটা ডিকশনারির সবগুলো আইটেমকে এক ঝটকায় রিমুভ করে ফেলতে চাই clear() ফাংশনটা কাজের জিনিস।

>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'hometown': 'Barisal'}
>>> a.clear()
>>> a
{}

আর যদি গোটা ডিকশনারি সমেত সব খাইয়া দিতে চাই? তাহলে? তাহলেও সেই del স্টেটমেন্টের প্রয়োগ বাঞ্ছনীয়।

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> del a
>>> a
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

পুরো ডিকশনারিটা খাইয়া দেয়ার কারণে পাইথন NameError থ্রো করেছে। বলতেছে যে আমরা নাকি a নামে কোন ডিকশনারি ভ্যারিয়েবল ডিফাইনই করি নাই। হা হা হা!

কিছু ফাংশনের (মেথড) প্রয়োগ

copy()

এই ফাংশনটা কোন ডিকশনারির একটা পূর্ণাঙ্গ কপি রিটার্ন করে।

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a.copy()
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}

get(key, default=None)

এই ফাংশনটা মূলত স্ট্রিংয়ে কোন কী সার্চ করে সেটার ভ্যালু পাবার জন্য ব্যবহার করা হয়। যদি কী ডিকশনারিতে না থাকে তবে একটা ডিফল্ট ভ্যালু রিটার্ন করবে। প্রাথমিকভাবে এই ভ্যালুটা হল None মানে কিছুই না, তবে আমরা চাইলে এটাকে পরিবর্তন করে দিতে পারি।

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a.get('name')
'MD. Maksudur Rahman Khan'
>>> a.get('home')
>>> a.get('home', 'kicu nai')
'kicu nai'

has_key(key)

কোন ডিকশনারিতে কোন নির্দিষ্ট কী আছে কিনা সেটা পরীক্ষা করার জন্য আমরা এই ফাংশনটা ব্যবহার করতে পারি। যদি কীটা থাকে তবে True রিটার্ন করবে, না থাকলে False রিটার্ন করবে। তবে আফসোসের কথা হল, এটাকে বাদ দিয়ে দেয়া হয়েছে। এটার কাজ আমরা একটু অন্যভাবে in দিয়ে করতে পারি।

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> 'name' in a
True
>>> 'home' in a
False

items()

এই ফাংশনটা একটা ডিকশনারিকে লিস্ট হিসাবে রিটার্ন করে। লিস্টের ভিতর প্রতিটা আইটেম টাপল হিসাবে থাকে। প্রতিটা টাপলের 0 নম্বর ইনডেক্সে থাকে কী আর 1 নম্বর ইনডেক্সে থাকে ভ্যালু।

>>> a = {'name' : 'MD. Maksudur Rahman Khan', 'nickname' : 'Maateen', 'email' : 'maateen@outlook.com', 'phone' : '01711223344'}
>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a.items()
dict_items([('name', 'MD. Maksudur Rahman Khan'), ('nickname', 'Maateen'), ('email', 'maateen@outlook.com'), ('phone', '01711223344')])

keys()

এই ফাংশনটা একটা ডিকশনারির সবগুলো কী লিস্ট হিসাবে রিটার্ন করে।

>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a.keys()
dict_keys(['name', 'nickname', 'email', 'phone'])

values()

এই ফাংশনটা একটা ডিকশনারির সবগুলো ভ্যালু লিস্ট হিসাবে রিটার্ন করে।

>>> a
{'name': 'MD. Maksudur Rahman Khan', 'nickname': 'Maateen', 'email': 'maateen@outlook.com', 'phone': '01711223344'}
>>> a.values()
dict_values(['MD. Maksudur Rahman Khan', 'Maateen', 'maateen@outlook.com', '01711223344'])

এই পর্যন্তই থাক। অনেক তো হল। এবার প্রাকটিস করার পালা।

বইটি পড়ার সময় প্রতিটি টপিক ধারাবাহিকভাবে বুঝে বুঝে পড়তে হবে এবং হাতে-কলমে অনুশীলন করতে হবে। কোন অংশ বুঝতে সমস্যা হলে ফেসবুক গ্রুপ পাইথন বাংলাদেশে সমস্যাটি পোস্ট করতে পারেন। এখান থেকে অতি দ্রুত সাহায্য-সহযোগীতা পাবেন আপনি।

results matching ""

    No results matching ""