DEV Community

Cover image for পাইথন প্রোগ্রামিং এ ভেরিয়েবল এবং ডাটাটাইপ
Moniruzzaman Saikat
Moniruzzaman Saikat

Posted on

পাইথন প্রোগ্রামিং এ ভেরিয়েবল এবং ডাটাটাইপ

variable শব্দটার বাংলা অর্থ হচ্ছে চলক। তার মানে এই জিনিসটা পরিবর্তিত হতে পারবে। অন্যকথায়, ভেরিয়েবল হচ্ছে ধারক বা container বা placeholder. অর্থাৎ, ভেরিয়েবলের মধ্যে তুমি কোন একটা ডাটা রেখে দিতে পার, যা পরে তুমি তোমার প্রোগ্রামে ব্যাবহার করতে পারবে।

তো, এই variable এর মধ্যে তুমি যেকোন ডাটাই রেখে দিতে পার। এইটা হতে পারে তোমার নাম(string), তোমার বয়স(number) অথবা কোন একটা একটা কথা সত্যি নাকি মিথ্যা(boolean). তো এই যে ডাটাগুলা তুমি কোন একটা container বা variable এর মধ্যে রাখতেছ, তো ঐ variable এর একটা নাম দিতে হবে না 🤨? তাহলেই তো তুমি ঐ নামের মাধ্যমে ডাটা টাকে অ্যাক্সেস করতে পারবা।

নোটঃ পাইথন প্রোগ্রামিং এ তোমাকে নির্দিষ্ট করে বলে দিতে হবে না যে, তুমি কি ধরনের ডাটা তোমার ভেরিয়েবলের মধ্যে রাখতেছ। তুমি just একটা variable এর নাম দিয়েই এর মধ্যে ডাটা টাকে রেখে দিতে পারবা।

কিভাবে একটি ভেরিয়েবল Declare(তৈরি) করে মান নির্ধারন(assign) করে দিতে হয় 🤔

তো মনে কর, তুমি একটা প্রোগ্রাম লিখছ । যেখানে তোমাকে একজন user এর নাম মনে(contain) রাখতে হবে। তো তাহলে তোমাকে প্রথমেই একটা ভেরিয়েবলের নাম declare করতে হবে, তারপর = (সমান) এর মাধ্যমে তোমাকে একটা মান assign করে দিতে হবে। একটা জিনিস মনে রাখতে হবে, তুমি কিন্তু চাইলেই যেকোন কিছু নাম দিতে পারবে না। ভেরিয়েবলের নাম কিভাবে নির্ধারণ করতে হয়, তা নিচে বিস্তারিত ভাবে দেয়া আছে।

আপাতত দেখ, নিচে আমি user_name নামে একটা ভেরিয়েবল তৈরী করছি। যার মধ্যে zuck123 নামে একটা মান দিয়ে দিছি। একটা জিনিস খেয়াল করছ, আমি কী ধরণের মান assign করছি ? এইটা একটা স্ট্রিং(string) . তুমি চাইলে অন্য কিছুও ব্যাবহার করতে পারবে। যেটা আমরা Data Type সেকশনে দেখব।

user_name = 'zuck123'
Enter fullscreen mode Exit fullscreen mode

এখন তুমি একটা জিনিস খেয়াল করো, উপরের যে ভেরিয়েবলটা তুমি create করছ, ঐ মানটা কী সব সময়ই একই থাকবে । না, থাকবে না । কারণ , তুমি তো আগেই জান যে variable মানে হচ্ছে চলক অর্থাৎ যার মান চলতে চলতেই পরিবর্তিত হতে পারবে । এর নিচের লাইনে এসে যদি তুমি বলে দাও user_name ভেরিয়েবলটিতে অন্য কোন মান রাখ, তাহলে কিন্তু কম্পিউটার ওইখানে অন্য একটা মানই রাখবে। নিচে দেখ 👇🏼

user_name = 'zuck123'
user_name = 'Mark Zuckerburg'
Enter fullscreen mode Exit fullscreen mode

দেখছ, প্রথম লাইনে আমরা বলে দিলাম user_name ভেরিয়েবলটিতে zuck123 মানটা রাখ। কিন্তু ২ নম্বর লাইনে এসে আমরা আবার বলে দিলাম যে, user_name এর মধ্যে তুমি Mark Zuckerburg এই মান টা রেখে দাও । তো এই জিনিসটিকেই আসলে বলা হয় Variable re-assign করা।

ভেরিয়েবল নাম নির্ধারণ করার কিছু শর্ত 🧐:

☑ ভেরিয়েবলটার নাম কেবলমাত্র (a-z/A-Z) অথবা _ দিয়ে শুরু হতে পারবে।

name = 'Mr Bean'                # Right
_secret = 'Ami'                 # Right
10name = 'Amar name a vul ace ' # Wrong 
Enter fullscreen mode Exit fullscreen mode

☑ ভেরিয়েবল নামের শুরু হওয়া ব্যাতিত অন্য যেকোন জায়গায় (a-b/A-B) বা numbers বা underscores থাকতে পারে।

ten10 = 10                  # Right
10ten = 10                  # Wrong
amar_name = 'Mr Zuckerburg' # Right

Enter fullscreen mode Exit fullscreen mode

☑ ভেরিয়েবল নামের মাঝখানে কোন ফাকা জায়গা(space) রাখা যাবে না।

amar_name = 'Mr Zuckerburg'           # Right
amar name = 'Amar name vul ache :)'  # Wrong
Enter fullscreen mode Exit fullscreen mode

☑ পাইথনে ভেরিয়েবল নামগুলো case-sensitive হয়ে থাকে । অর্থাৎ ছোট হাতের অক্ষর দিয়ে কোন ভেরিয়েবলের নাম আর বড় হাতের অক্ষর দিয়ে ঐ সেইম name কিন্তু একই না :)

AmarName = 'Mr Zuckerburg'          # এইটা আলাদা
amarName = 'Amio Mr Zuckerburg'  # এইটা আলাদা
Enter fullscreen mode Exit fullscreen mode

☑ পাইথনে কিছু reserved বা নিজস্ব কিওয়ার্ড আছে। তুমি ঐ কিওয়ার্ডগুলোও ভেরিয়েবল নাম হিসেবে ব্যবহার করতে পারবে না। নিচে কিওয়ার্ডগুলো দিয়ে দেয়া হলঃ

Keywords Keywords Keywords Keywords Keywords Keywords
and def False import not True
as del finally while in or
assert elif try for is pass
break else with from lambda print
class except yield global raise None
continue exec if nonlocal return

পাইথন প্রোগ্রামিং এ ডাটা টাইপ(Data Type):

পাইথন কিন্তু Dynamically typed একটা প্রোগ্রামিং ভাষা। অর্থাৎ,ভেরিয়েবল তৈরী করার সময় তোমাকে এর টাইপ বলে দিতে হবে না । মানে কী 🤨 ?

এর মানে হচ্ছে, তুমি যখন একটা ভেরিয়েবল Decalare করতেছ, তখন তোমাকে বলে দিতে হবে না যে, তুমি কী ধরণের মান assign করতেছ, পাইথন নিজে নিজেই বুঝে যাবে যে তুমি কী string assign করতেছ নাকি number নাকি অন্য কিছু।

কিন্তু প্রোগ্রামিং করার সময় তোমাকে অবশ্যই জানতে হবে যে তুমি কোন ধরণের ডাটার সাথে কাজ করতেছ । তাহলে, প্রোগ্রামিং করার সময় তোমার কোডগুলা অনেক efficient হবে পাশাপাশি তোমার লাইফটাও অনেক সহজ হয়ে যাবে 😊

নিচে কিছু বেসিক (basic) ডাটাটাইপ সম্পর্কে আলোচনা করা হল, যেগুলা তোমাকে অবশ্যই অবশ্যই জানতে হবে।
String or text based Data Type
Numeric Data type
Boolean or (True-False) Data Type
List Data Type

String Data Type

তোমার প্রোগ্রামে বিভিন্ন সময় বিভিন্ন রকমের শব্দ,বাক্য, প্যারাগ্রাফ নিয়ে কাজ করতে হতে পারে। তো এই ক্ষেত্রে তোমাকে এই string ডাটা টাইপ ব্যাবহার করতে হবে। তো পাইথনে তুমি দুইভাবে string টাইপের ভেরিয়েবল ব্যাবহার করতে পার। সিংগেল কোটেশন(Single Quote)[''] অথবা ডাবল কোটেশন(Double qutation)[""]. নিচের উদাহরণ দেখ👇🏼

variabl1 = 'Ami thik aci'
variabl2 = "Amio thik aci:)"
Enter fullscreen mode Exit fullscreen mode

উপরের দুইটা ভেরিয়েবলই ঠিক আছে। কিন্তু তুমি যখন একটা paragraph লিখতে যাবে, তখন কিন্তু তুমি উপরের নিয়মে লিখতে পারবে না। অর্থাৎ single quote বা double quote দিয়ে যখন তুমি কোন string বানাবা , তখন যদি তুমি নতুন লাইনে চলে আসতে চাও তাহলে তুমি একটা এরর(error) খাবা 😥। তাহলে কী করতে হবে 🤔? তাহলে, তুমি যদি পাইথনে এমন একটা স্ট্রিং বানাইতে চাও যা কিনা multiline এর হতে পারে বা একটা paragraph হতে পারে তখন তোমাকে নিচের মত করে string declare করতে হবে 👇🏼

gorur_rocona = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""
Enter fullscreen mode Exit fullscreen mode

Numeric Data Type

তোমাকে বিভিন্ন সময় বিভিন্ন রকম নাম্বার নিয়ে কাজ করতে হতে পারে। বিভিন্ন রকম নাম্বার বলতে float(দশমিক) নাম্বার, integer(পূর্ণসংখ্যা)। তো পাইথনে আসলে তিন ধরণের নাম্বার আছে।

  • int (Integer বা পূর্ণসংখ্যা)
  • float (Floating point number বা দশমিক সংখ্যা)
  • Complex (Complex বা জটিল সংখ্যা) নাম্বার পজিটিভ বা নেগেটিভ হতে পারবে। নিচে কয়েকটি উদাহরণ দেয়া হল 👇🏼
age     = 18         # Integer Number
height  = 5.6        # Float Number
complex = -87.7e100  # Complex Number
Enter fullscreen mode Exit fullscreen mode

Boolean Data Type

ধর কোন একটা ঘটনা ঘটছে । তো, তোমাকে আমি বললাম যে তুমি শুধু বল যে ঘটনাটা আসলে ঘটছে কী না । তো তুমি একটা variable এ এই মান টা কিভাবে রাখবে ? নিচে দেখে ফেল 👇🏼

ghotona_ghotce = True  # এইখানে তুমি True অথবা False লিখতে পার 
Enter fullscreen mode Exit fullscreen mode

তো এই হচ্ছে boolean. তুমি একটা ভেরিয়বলে True or False রাখতে পারতেছ।

List Data Type

এখন তুমি তো string বা number ডাটা টাইপ নিয়ে কিভাবে কাজ করতে হয় শিখে ফেলছ। তাই না ? আচ্ছা, এখন যদি আমি তোমাকে বলি তোমার বেশ কয়েকজনের বন্ধুর নামের একটা লিস্ট বানিয়ে ফেল । তখন তুমি কই করবে ? তো প্রথমেই চিন্তা কর যে, একেকটা নাম কিন্তু একেকটা string । এখন এরকম অনেকগুলো string নিয়েই আমাদের একটা লিস্ট বানিয়ে ফেলতে হবে। নিচে দেখ 👇🏼

friends = ['Rakib', 'Sakib', 'Wakib'] 
Enter fullscreen mode Exit fullscreen mode

তাহলে, অনেক গুলো item নিয়ে একটা লিস্ট হয়ে থাকে । তুমি উপরের লিস্টটাতে যেকোন রকমের value ই রাখতে পারবে। সেটা হতে পারে কোন নাম্বারের লিস্ট বা স্ট্রিং এর লিস্ট । যেমন তোমাকে যদি বলা হয় একটা নাম্বারের লিস্ট বানিয়ে ফেল। তুমি কিন্তু পারবে । কীভাবে ? [1,2,3,4]

তো আচ্ছা, এই যে লিস্টটা আছে । এর প্রত্যেকটি item কে বলা হয় একেকটা element বা উপাদান । তো, তোমাকে আমি যদি বলি Sakib নামের string টা তুমি আমাকে দাও, অথবা শুধুমাত্র ঐ string টাকে অন্য একটা variable এ রেখে দাও। এই কাজটা করার আগে একটা জিনিস জেনে রাখ, পাইথনে কিন্তু list কিন্তু 0 index based. মানে হচ্ছে, 0 তম index এ আছে Rakib, 1 তম index এ আছে Sakib আর 3 তম index এ আছে Wakib. বুঝছ, এইভাবেই চলতে থাকবে। মানে তুমি দেখেতেছ যে একটা element ১০০ তম জায়গায় আছে, তাহলে ঐ element টাকে অ্যাক্সেস করতে হলে তোমাকে কিন্তু ৯৯ তম index এ access করতে হবে।

নিচের উদাহরণ টা দেখ 👇🏼

friends   = ['Rakib', 'Sakib', 'Wakib'] 
ami_sakib = friends[1]      # এর মান হল Rakib
ami_rakib = friends[0]      # এর মান হল Sakib
Enter fullscreen mode Exit fullscreen mode

Conclusion

এই ব্লগে আমরা পাইথনের বেসিক কিছু ডাটা টাইপ এবং ভেরিয়েবল নিয়ে কিভাবে কাজ করতে হয় , এগুলা শিখছি। এর পরবর্তি ব্লগে আমরা String নিয়ে বিস্তারিত ভাবে জানতে পারব 🤟🏼

Top comments (4)

Collapse
 
mnroy profile image
mnroy

helping post dear.

Collapse
 
aatmaj profile image
Aatmaj

খুব সুন্দর

Collapse
 
moniruzzamansaikat profile image
Moniruzzaman Saikat

Thanks and response for next 🤟🏼

Collapse
 
krishno_91 profile image
krishno roy

🤟🤟🤟