ভ্যারিয়েবলের নামকরণের নিয়মাবলী

লিখেছেন: কাজী মুশফিকুর রহমান || সফটওয়্যার প্রকৌশলী, টেকনিয়াস (সফটওয়্যার নির্মাণ প্রতিষ্ঠান) || তারিখঃ 24 এপ্রি., 2024


বিষয় এর সাথে মিল রেখে ভ্যারিয়েবল এর নামকরণ করা ভাল

পাইথন এ ভ্যারিয়েবল এর নাম সংক্ষিপ্ত হতে পারে (যেমন: a, b, c, d ইত্যাদি), আবার বর্ণনামূলক ও হতে পারে (যেমন: age, first_name, last_name, designation, biography, hobby ইত্যাদি)। তবে রিয়েল লাইফ প্রজেক্ট এ বর্ণনামূলক নাম দেয়া ভালো, যাতে করে কোড এর স্ট্যান্ডার্ড ধরে রাখা যায় এবং কমিউনিটি এর সকলের জন্য সহজে বোধগম্য হয়। যে ভ্যারিয়েবল কে যে উদ্দেশ্যে ডিক্লেয়ার করা হয়, সেই বিষয় এর সাথে মিল রেখেই তাদের নামকরণ করা ভালো। যেমন ধরুন, আমি আমার ব্যাক্তিগত তথ্য (পদবি, নাম, ঠিকানা, বিভাগ, শখ ইত্যাদি) প্রিন্ট করার জন্য একটি পাইথন প্রোগ্রাম লিখব। এখন, আমি চাইলে আমার ব্যাক্তিগত তথ্য কে যথাক্রমে এই ভারিয়াবলগুলো (title, name, address, department, hobby) এর মধ্যে অথবা  এই ভারিয়াবলগুলো (a, b, c, d, e) এর মধ্যে  স্টোর করতে পারি। তবে প্রথম পদ্ধতিটাই উত্তম, কারণ এক্ষেত্রে বিষয় এর সাথে ভ্যারিয়েবল এর নামের একটি মিল থাকে এবং পাঠকরা সহজে বুঝতে পারে।

এখন, আমি আমার ব্যাক্তিগত তথ্য প্রিন্ট করার জন্য একটি পাইথন প্রোগ্রাম লিখব।

কোড:

title = 'Kazi'

name = 'Mushfiqur Rahman'

address = 'kashiani, Gopalganj'

department = 'Computer Science & Engineering'

designation = 'Software Engineer, Techneous'

hobby = 'Computer programing'

full_name = title + " " + name

print('Title: ', title)

print('Name: ', name)

print('Full name: ', full_name)

print('Address: ', address)

print('Department: ', department)

print('Designation: ', designation)

print('Hobby: ', hobby)

 

উপরের উদাহরণ এর প্রথম লাইন এ title ভ্যারিয়েবল এর মধ্যে আমি ভ্যালু 'Kazi' স্টোর করেছি, দ্বিতীয় লাইন এ name ভ্যারিয়েবল এর মধ্যে ভ্যালু 'Mushfiqur Rahman' স্টোর করেছি, তৃতীয় লাইন এ address ভ্যারিয়েবল এর মধ্যে ভ্যালু 'kashiani, Gopalganj' স্টোর করেছি, চতুর্থ  লাইন এ department ভ্যারিয়েবল এর মধ্যে ভ্যালু 'Computer Science & Engineering' স্টোর করেছি, পঞ্চম লাইন এ designation ভ্যারিয়েবল এর মধ্যে ভ্যালু 'Software Engineer, Techneous' স্টোর করেছি, ষষ্ঠ লাইন এ hobby ভ্যারিয়েবল এর মধ্যে ভ্যালু 'Computer programing' স্টোর করেছি, সপ্তম লাইন এ title এবং name কে যোগ করে full_name ভ্যারিয়েবল এর মধ্যে স্টোর করেছি, এবং পরবর্তী লাইনগুলো তে জাস্ট তথ্যগুলো প্রিন্ট করেছি। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

Title:  Kazi

Name:  Mushfiqur Rahman

Full name:  Kazi Mushfiqur Rahman

Address:  kashiani, Gopalganj

Department:  Computer Science & Engineering

Designation:  Software Engineer, techneous

Hobby:  Computer programing

 

আমি চাইলে উপরের কোডটি নিচের মত করে লিখতে পারতাম। তবে উপরের কোডটি স্ট্যান্ডার্ড এবং পাঠকদের জন্য সহজে বোধগম্য, কারণ  বিষয় এর সাথে ভ্যারিয়েবলের এর নামের মিল রয়েছে। নিচের কোডটিতে আমি আমার ব্যাক্তিগত তথ্য কে যথাক্রমে ৭ টি ভ্যারিয়েবল (a, b, c, d, e, f, ab) এর মধ্যে স্টোর করেছি। এ কোডটি ও কাজ করছে এবং উভয় কোডটি (উপরের কোডটি এবং নিচের কোডটি) একই আউটপুট দিচ্ছে। তবে পার্থক্য হলো, নিচের কোড এর ভ্যারিয়েবল গুলো এর সাথে বিষয়ের কোনো মিল নেই। সাধারণত কোড এর স্ট্যান্ডার্ড ধরে রাখতে রিয়েল লাইফ প্রজেক্ট এ এভাবে ভ্যারিয়েবল ডিক্লেয়ার করা হয় না, বরং বিষয়ের সাথে মিল রেখেই ভ্যারিয়েবল গুলো ডিক্লেয়ার করা হয়।

কোড:

a = 'Kazi'

b = 'Mushfiqur Rahman'

c = 'kashiani, Gopalganj'

d = 'Computer Science & Engineering'

e = 'Software Engineer, Techneous'

f = 'Computer programing'

ab = title + " " + name

 

print('Title: ', a)

print('Name: ', b)

print('Full name: ', ab)

print('Address: ', c)

print('Department: ', d)

print('Designation: ', e)

print('Hobby: ', f)

 

এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

Title:  Kazi

Name:  Mushfiqur Rahman

Full name:  Kazi Mushfiqur Rahman

Address:  kashiani, Gopalganj

Department:  Computer Science & Engineering

Designation:  Software Engineer, techneous

Hobby:  Computer programing

 

ভ্যারিয়েবল এর নামকরণ এর নিয়মাবলী

  • পাইথন এ একটি ভ্যারিয়েবল শুরু হতে পারে আলফাবেট (ইংরেজি অক্ষর) দিয়ে অথবা আন্ডারস্কোর ক্যারেক্টার ( _ ) দিয়ে।
  • একটি ভ্যারিয়েবল নাম্বার (যেমন: 1, 2, 3, 4, 5 ইত্যাদি ) দিয়ে শুরু হতে পারে না।
  • একটি ভ্যারিয়েবল এর মধ্যে শুধু আলফা নিউমেরিক ক্যারেক্টার (A – Z অথবা a – z এবং 0 -9  অথবা ( _ ) থাকতে পারে ।

এখন, আমরা উদাহরণসহ ভ্যারিয়েবল এর নামকরণ এর নিয়মাবলী শিখব:

আলফাবেট (ইংরেজি অক্ষর) দিয়ে ভ্যারিয়েবল ডিক্লেয়ার করা

ইংরেজি তে ২৬ টি অক্ষর রয়েছে, এই অক্ষর গুলো এর মধ্যে যেকোন টাই ভ্যারিয়েবল হিসাবে ব্যবহৃত হতে পারে, চাই সেটা ছোট হাতের অক্ষর (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) হোক অথবা বড় হাতের অক্ষর (A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z) হোক। নিচের উদাহারণ গুলো লক্ষ করুন, তাহলে ব্যাপারটি স্পষ্ট হয়ে যাবে।

কোড:

a = 5

A = 20

b = 10

B = 25

x = 11

X = 100

print('a: ', a)

print('A: ', A)

print('b: ', b)

print('B: ', B)

print('x: ', x)

print('X: ', X)

 

এখানে, ভ্যারিয়েবল হিসাবে আমি ছোট হাতের এবং বড় হাতের উভয় অক্ষরই (a, A, b, B, x, X) ব্যবহার করেছি, এবং কোডটি ঠিকমত কাজও করছে। তবে রিয়েল লাইফ প্রজেক্ট এ ভ্যারিয়েবল কে সাধারণত ছোট হাতের অক্ষরে ডিক্লেয়ার করা হয়, অর্থাৎ, Name, Age, Address এর পরিবর্তে name, age, address এভাবে ডিক্লেয়ার করা হয়। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

a:  1

A: 20

B: 10

B: 25

X: 11

X: 100

 

আন্ডারস্কোর ক্যারেক্টার ( _ ) ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা

পাইথন এ আন্ডারস্কোর ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা যায়, তবে অন্যান্যা পাংচুয়েশন গুলো (?, !, ‘’, “”, ; , : , - , (),ইত্যাদি ) এক্ষেত্রে ব্যবহৃত হয়না। আপনি চাইলে শব্দের শুরুতে ( _country ), শব্দের শেষে ( city_ ), অথবা দুই শব্দের মাঝখানে ( full_message ) আন্ডারস্কোর ব্যবহার করতে পারেন। এমনকি শুধু আন্ডারস্কোরকে ও ভ্যারিয়েবল হিসাবে ডিক্লেয়ার করতে পারেন ( _ = 1)। তবে রিয়েল লাইফ প্রজেক্টে দুই শব্দের মাঝখানে (full_message) আন্ডারস্কোর ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা হয়। এখন, উদাহরণসহ আমরা আন্ডারস্কোর এর ব্যবহার দেখব।

# শব্দের শুরুতে আন্ডারস্কোর ( _ ) ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা।

কোড:

_country = 'Bangladesh'

print(_country)

 

উপরের কোড এ country শব্দের শুরুতে আন্ডারস্কোর ব্যবহার করে আমি একটি ভ্যারিয়েবল ডিক্লেয়ার করেছি ( _country ), এবং এর মধ্যে ভ্যালু 'Bangladesh' এসাইন করেছি। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

Bangladesh

 

# শব্দের শেষে আন্ডারস্কোর ( _ ) ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা।

কোড:

city_ = 'Dhaka'

print(city_)

 

উপরের কোড এ city শব্দের শেষে আন্ডারস্কোর ব্যবহার করে আমি একটি ভ্যারিয়েবল ডিক্লেয়ার করেছি ( city_ ), এবং এর মধ্যে ভ্যালু 'Dhaka' এসাইন করেছি। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

Dhaka

 

# দুই শব্দের মাঝখানে আন্ডারস্কোর ( _ ) ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা। রিয়েল লাইফ প্রজেক্টে এই পদ্ধতিটি বেশি ব্যবহৃত হয়।

কোড:

full_message = 'We live in Dhaka city of Bangladesh'

print(full_message)

 

উপরের কোড এ দুই শব্দ (full and message) এর মাঝখানে আন্ডারস্কোর ব্যবহার করে আমি একটি ভ্যারিয়েবল ডিক্লেয়ার করেছি (full_message), এবং এর মধ্যে ভ্যালু 'We live in Dhaka city of Bangladesh' এসাইন করেছি।  এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

We live in Dhaka city of Bangladesh

 

# শুধু আন্ডারস্কোর ( _ ) ব্যবহার করে ভ্যারিয়েবল ডিক্লেয়ার করা। রিয়েল লাইফ প্রজেক্টে ল্যাংগুয়েজ ট্রান্সলেশন এর ক্ষেত্রে শুধু আন্ডারস্কোর ( _ ) কে ভ্যারিয়েবল হিসাবে ব্যবহার করা হয়।

কোড:

_ = 1

print('Underscore: ', _)

উপরের কোড এ শুধু আন্ডারস্কোর কে আমি একটি ভ্যারিয়েবল হিসাবে ডিক্লেয়ার করেছি ( _ ), এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

1

একটি ভ্যারিয়েবল নাম্বার (যেমন: 1, 2, 3, 4, 5 ইত্যাদি ) দিয়ে শুরু হতে পারে না

পাইথন এ কোন ভ্যারিয়েবল নাম্বার (যেমন: 1number) দিয়ে শুরু হতে পারে না। তবে ভ্যারিয়েবল এর শেষে (যেমন: number1) অথবা মাঝে (যেমন: n1n2) নাম্বার ব্যবহার করা যায়। এখন, উদাহরণসহ আমরা এর ব্যবহার দেখব।

# একটি ভ্যারিয়েবল নাম্বার (যেমন: 1number) দিয়ে শুরু হতে পারে না।

কোড:

1number = 1

Print(1number)

 

উপরের কোডটি তে আমি একটি ভ্যারিয়েবল 1number ডিক্লেয়ার করেছি যেটি শুরু হয়েছে নাম্বার দিয়ে। এখন কোডটি রান করলে পাইথন একটি এরর মেসেজ দিবে (SyntaxError: invalid syntax)। এই মেসেজ এর মাধ্যমে পাইথন আমাদের কে এ কথা বলতে চাই যে, আমাদের ভ্যারিয়েবল টি (1number) ডিক্লেয়ার করা ঠিক হয়নি। কারণ এটি শুরু হয়েছে নাম্বার দিয়ে, আর ভ্যারিয়েবল এর নামকরণ এর নিয়মানুসারে নাম্বার দিয়ে কোন ভ্যারিয়েবল শুরু হতে পারে না। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

  File "<stdin>", line 1

    1number = 1

     ^

SyntaxError: invalid syntax

 

# ভ্যারিয়েবল এর শেষে (যেমন: number1) নাম্বার ব্যবহার করা যায়।

কোড:

number1 = 1

number2 = 2

print(number1)

print(number2)

 

উপরের কোডটি তে আমি দুটি ভ্যারিয়েবল (number1 এবং number2) ডিক্লেয়ার করেছি, যেগুলো শেষ হয়েছে নাম্বার দিয়ে। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

1

2

 

# ভ্যারিয়েবল এর মাঝে (যেমন: n1n2) নাম্বার ব্যবহার করা যায়।

কোড:

n1n2 = 3

print(n1n2)

 

উপরের কোডটি তে আমি একটি ভ্যারিয়েবল (n1n2) ডিক্লেয়ার করেছি, যার মাঝে নাম্বার ব্যবহৃত হয়েছে। এখন কোডটি রান করলে আমরা নিচের আউটপুট টি পাব।

আউটপুট:

3