ভ্যারিয়েবল (Variable)

ভ্যারিয়েবলকে তুলনা করা যায় একটি বক্স বা কনটেইনার এর সাথে, যার মধ্যে কোন একটি টাইপের জিনিস রাখা যায়। পিজ্জা এর বক্স এ পিজ্জা থাকে, আইসক্রীম বক্স এ আইসক্রীম থাকে। আবার আইসক্রীম বক্সে চাইলে আইসক্রীম সরিয়ে অন্য খাবারও রাখা যায়। অর্থাৎ একই বক্সে বিভিন্ন টাইপের জিনিস রাখা যায়।

প্রোগ্রামিং এর সাথে তুলনা করলে,একটি বক্স এর নাম মনে করি X, এই X বক্সে Pizza খাবার রাখা বুঝতে, প্রোগ্রামিং এর ভাষায় আমরা লিখি X = Pizza । X নামক এই বক্সটি ই হচ্ছে একটি ভ্যারিয়েবল। ধরুন কম্পিটার আপনার কাছ থেকে দুইটি সংখ্যা নিবে এবং এদের যোগফল বের করে দিবে। যোগ করার প্রসেস টি যদি এভাবে কল্পনা করেন:

১। প্রথম সংখ্যা টি একটি বক্সে রাখলাম ১০।

২। দ্বিতীয় সংখ্যা টি অন্য একটি বক্সে রাখলাম ২০।

৩। তৃতীয় একটি বক্সে এই দুটি সংখ্যার যোগফল রাখলাম।

পাইথনে প্রোগ্রাম এ তো তার মত করে বুঝতে হবে যে যোগ করার প্রসেস টি লেখা হয়েছে।

first _box = ১০

second _box = ২০

third_box = first _box + second _box

আপনি ধরে নিতে পারেন পাইথনে এর ভিতরে কিছু একটা ম্যাজিক আছে যার কারনে ” third_box = first _box + second _box” লিখলেই third_box এর মধ্যে ৩০ রেখে দেয়।

এখানে প্রোগ্রামিং এর ভাষায় Pizza হল ডেটা আর X হল ভ্যারিয়েবল। প্রোগ্রামিং এ ইন্টিজার,স্ট্রিং, ডাবল ইত্যাদি বিভিন্ন টাইপের ডেটা থাকতে পারে।

পাইথন এ ভ্যারিয়েবল

পাইথনে ভ্যারিয়েবল তৈরী করতে কোনো আলাদা কমান্ড দেওয়ার প্রয়োজন নেই। ভ্যারিয়েবল এ কোনো ভ্যালু এসাইন করলেই ভ্যারিয়েবল হিসাবে এটি ব্যবহার করার যায়।

ভ্যারিয়েবল লেখার কিছু নিয়ম:

১। Variable এর নাম লেটার(A….Z)/(a…z) অথবা আন্ডার স্কোর (_) দিয়ে শুরু করতে হবে।

২। Variable এর নাম কখনোই শুরুতে সংখ্যা(0….9) দিয়ে শুরু করা যাবে না।

৩। Variable এর নাম ( ,0..9,A…z, ) এই তিন ধরনের ক্যারেক্টর বহন করবে এবং কেইস সেন্সিটিভ। (Age এবং age দুটি

ভিন্ন variable) ।

৪। পাইথনে কিছু reserved keywords রয়েছে যেগুলা ভ্যারিয়েবল নাম হিসেবে ব্যবহার করা যাবে না ।

reserved keywords গুলা  দেওয়া হলো :-

Python Keywords

Falsedefifraise
Nonedelimportreturn
Trueelifintry
andelseiswhile
asexceptlambdawith
assertfinallynonlocalyield
breakfornot
classfromor
continueglobalpass

Example:

Age = 10
 

এখানে Age হচ্ছে ভ্যারিয়েবল বা বক্স এর নাম, 10 হচ্ছে ভ্যালু। ভ্যালু (10) এর টাইপ হচ্ছে ইন্টিজার। এখন কোড টি যদি এভাবে লেখা হয়ঃ

Age = 10

Age = “Ten”
 

তাহলে অনেকটা পিজ্জা এর বক্সে আইসক্রীম রাখার মত হয়ে গেলো। এই Age নামের ভ্যারিয়েবলটিই এখন ইন্টিজার টাইপ এর পরিবর্তে স্ট্রিং টাইপ এর ভ্যালু রেখেছে। এখানে কোটেশন (“Ten”) এর মাধ্যমে টাইপটা পরিবর্তন করে স্ট্রিং করা হল। (“Ten”) এর পরিবর্তে (‘Ten’) লিখলেও পাইথন এটিকে স্ট্রিং হিসাবে ধরে নেয়।

চাইলে ভ্যারিয়েবলে ভ্যালু এসাইন করার সময় এর টাইপ বলে দেয়া যায়।

x: str = str(3)\# স্ট্রিং টাইপের ভ্যালু

y: int = int(3)\# ইন্টিজার টাইপের ভ্যালু

z: float = float(3)\# ডাবল টাইপের ভ্যালু
 

পাইথনে ভ্যরিয়েবল এর আউটপুট দেখতে print() ফাংশন ব্যবহার করা হয়। আর একটা ভ্যারিয়েবল কোন টাইপের, তা জানার ফাংশন type()

print(type(x))

বড় নামের ভ্যরিয়েবল লেখার কিছু প্রচলিত রীতি

MyVariableName = “John” # প্যাসকেল কেইস

myVariableName = “John” # ক্যামেল কেইস

my_variable_name = “John” # স্নেক কেইস
 

ভ্যরিয়েবলের নাম লিখতে পাইথনে বেশিরভাগ ক্ষেত্রে স্নেইক কেইস ব্যবহার হয়।

চাইলে অনেকগুলি ভ্যরিয়েবল এক লাইনে লিখে ডিক্লেয়ার করা যায়ঃ

x, y, z = “Orange”, “Banana”, “Cherry”

print(“x = “,x)

print(“y = “,y)

print(“x = “,z)
 

আউটপুট

x = Orange

y = Banana

x = Cherry
 

একই ভ্যালু সবগুলি ভ্যরিয়েবেল এ এসাইন করতে চাইলে,

x = y = z = “Orange”

print(“x = “,x)

print(“y = “,y)

print(“x = “,z)
 

আউটপুট

x = Orange

y = Orange

x = Orange
 

কোনো লিস্ট (list) বা টাপল (tuple) থেকে ভ্যালুগুলি আলাদা আলাদা ভ্যারিয়েবল এ রাখতে চাইলে, আনপ্যাক (unpack) অপশন ব্যবহার করা যায়

fruits = [“apple”, “banana”, “cherry”]

x, y, z = fruits

print(“x = “,x)

print(“y = “,y)

print(“x = “,z)
 

আউটপুট

x = apple

y = banana

x = cherry
 

“+” অপারেটর এর মাধ্যমে দুইটি একই ডাটা টাইপের ভ্যরিয়েবল এর ভ্যালু যোগ করা যায়। টাইপ অনুসারে আউটপুট ভিন্ন হবে

x = “Python is “

y = “awesome”

z = x + y

print(z)
 

আউটপুট

Python is awesome
 

আবার,

x = 5

y = 7

sum = x + y

print(“sum = “, sum)
 

আউটপুট

sum = 12

**গ্লোবাল এবং লোকাল ভ্যরিয়েবলঃ**

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

x = “This is global variable”

defmyfunc():

y = “This is local variable”

print(“x= “ + x)

myfunc()
 

আউটপুট

x= This is global variable
 

উদাহরন

Example 1:

#Example 1

list_inpt = list(input())

print(list_inpt)

print(type(list_inpt))

# Output

# [‘1’, ‘2’, ‘3’]

# 
 

Example 2:

# Example 2

integer_inpt= int(input(“Enter the integer number “))

print(integer_inpt)

print(type(integer_inpt))


# Output

# 3

# 
 

Example 3:

# Example 3

float_inpt= float(input(“Enter a float number “))

print(float_inpt)

print(type(float_inpt))

# Output

# 2.0

# 
 

Example 4:

# Example 4

tuple_inpt= tuple(input())

print(tuple_inpt)

print(type(tuple_inpt))

# Output

# (‘1’, ‘2’, ‘3’)

# 
 

Example 5:

dict_inpt = dict(input())

print(dict_inpt)

print(type(dict_inpt))

# output

# Traceback (most recent call last):

# File “/home/riazul/Office\_projectsL/Dice rolling/main.py”, line 42, in 
# dict_inpt = dict(input())

# ValueError: dictionary update sequence element #0 has length 1; 2 is required
 

এসো নিজে করি

১। ইউজার ইনপুট হিসেবে লিস্ট নিন ।

২। একটি টাপল ইউজার থেকে নিয়ে তার টাইপ প্রিন্ট করুন ।

৩। একটি ফ্লোট ভ্যালু ইনপুট নিন ।

৪। raw_input() দিয়ে একটি স্ট্রিং ইউজার থেকে নিন ।

৫। একটি ডিকশনারি ইনপুট নিয়ে দেখুন আউটপু কি আসে।

ইন্টারভিউ প্রশ্নোত্তর

  1. input এবং raw_input এর মধ্যে পার্থক্য কি ?
  2. intput() দিয়ে যেই ইনপুট নিবো , তার ডাটা টাইপ কি ?
  3. আমি ইনপুট দিবো 1,2,3 এভাবে , আউটপুট দেখাবে [1,2,3] এভাবে
  4. লিস্ট ইনপুট নিবেন কিভাবে ?
  5. ডিকশনারি ইনপুট নিবেন কিভাবে ?