Python String Formatting Methods Bangla

ফরম্যাটিং বিল্ট ইন মেথডসমূহ (Built in Methods of String Formatting) :

Python String Formatting Methods Bangla

পাইথনে স্ট্রিং নিয়ে কাজ করার জন্য বেশ কিছু উল্লেখযােগ্য বিল্ট ইন ফাংশন রয়েছে। যেমনঃ

> len

> join

> replace

> strip

> split

> capitalize

> upper

> lower

> casefold

> count

> find ইত্যাদি ।

নিম্নে এ সকল মেথডের ব্যবহার উল্লেখ করা হলাে।

len মেথড : সাধারণত স্ট্রিং-এর মধ্যে কতগুলাে ক্যারেক্টার বা সংখ্যা আছে তা নির্ণয় করার জন্য len() ফাংশন ব্যবহার করা

হয় । len হলো length (দৈর্ঘ্য) এর সংক্ষিপ্ত রূপ । এটি পাইথনের একটি Built-In-Function যা কি না পাইথন লাইব্রেরিতে থাকে।

উদাহরণ :

>>> x="Mahbub"
>>> len(x)
6
>>> y="Mahfuza Rahman"
>>> len(y)
14
>>> z ="123456789"
>>> len(z)
9
>>>

join মেথড : 

join মেথড একাধিক স্ট্রিং বিশিষ্ট একটি লিস্টের স্ট্রিং-গুলােকে একত্রিত (join) করে । join মেথডের সিনট্যাক্স

বা ফরম্যাট হলােঃ ",".join বা "-".join ৰা " & ".join । যেমন—

>>> print(",".join(["Mahbub", "Mahfuz", "Mahi", "Mahdee"]))
Mahbub, Mahfuz, Mahi, Mahdee
>>> print("&".join(["Mahbub", "Mahi"]))
Mahbub&Mahi

উপরের উদাহরণে, Mahbub, Mahfuz, Mahi, Mahdee এই চারটি ভ্যালুকে join করা হয়েছে কিন্তু তাদের মধ্যে

সেপারেটর হিসেবে (কমা,) পরবর্তীতে Mahbub, Mahi এই দুইটি ভ্যালুকে join করা হয়েছে এবং সেপারেটর হিসেৰে (&) ব্যবহার করা হয়েছে।

split মেথড ঃ 


join মেথডের ঠিক উল্টো মেথড হলাে split মেথড। এর মাধ্যমে একাধিক স্ট্রিং বিশিষ্ট একটি লিস্টের স্ট্রিংগুলােকে আলাদা আলাদা বা split করা যায়।

উদাহরণ-১ঃ
>>> x="Hey How are You"
>>> print(x.split())
['Hey', 'How', 'are', 'You']
উদাহরণ-২ঃ
>>> x="Hey How are you"
>>> words=x.split()
>>> for w in words:
print(w)
Hey
How
are
You

replace মেথড ঃ 


replace মেথডের মাধ্যমে কোন ক্যারেক্টার বা সাৰ স্ট্রিংকে অন্য কোন ক্যারেক্টার বা শব্দ দ্বারা রিপ্লেস
করা যায়।

উদাহরণ-১ঃ
>>> x="Welcome to Python Programming"
>>> x.replace("o", "a")
"Welcame ta Pythan Pragramming"
>>>
উদাহরণ-২ঃ 
>>> print("Welcome to C Programming".replace("C", "Python"))
Welcome to Python Programming
>>>
উদাহরণ-৩ঃ
>>> s="Welcome to C Programming
>>> new=s.replace("C", "Python")
>>> print (new)
Welcome to Python Programming
>>>

strip মেথড ঃ 


কোন বাক্যের শুরু কিংবা শেষের কোন ক্যারেক্টারকে একেবারে মুছে ফেলার জন্য এই মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> X="Welcome to Comilla Polytechnic Institute"
১১ x.strip('W')
elcome to Comilla Polytechnic Institute
>>> x strip('e')
'Welcome to Comilla Polytechnic Institute ',

capitalize মেথড: 


কোন স্ট্রিং-এর প্রথম অক্ষর বড় হাতের বা Capital Letter হিসেবে প্রদর্শনের জন্য capitalize মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> "welcome to Python"
>>> x.capitalize()
'Welcome to python'
>>>

upper মেথড : 


কোন স্ট্রিং-এর অক্ষরগুলােকে বড় হাতের ৰা Capital Letter হিসেবে প্রদর্শনের জন্য upper মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> x="welcome to Python"
>>> x.upper()
WELCOME TO PYTHON
>>>

lower মেথড ঃ 


কোন স্ট্রিং-এর অক্ষরগুলােকে ছােট হাতের বা Smal Letter হিসেবে প্রদর্শনের জন্য lower মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> x="Welcome to PYTHON"
>>> x.lower()
'welcome to python
>>>

swapcase মেথড় ঃ 


কোনাে স্ট্রিং-এর ছােট হাতের অক্ষরগুলােকে বড় হাতের অক্ষর বা বড় হাতের অক্ষরগুলােকে ছােট হাতের অক্ষর হিসেবে প্রদর্শনের জন্য swapcase মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> X "Welcome to Python"
>>> x.swapcase()
'wElCOME TO pYTHON'
>>>

casefold মেথড ঃ 


দুইটি স্ট্রিং-এর মধ্যে কম্পেয়ার করার সময় যখন তাদের কেস এক হওয়া দরকার তখন casefold মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> x= "Welcome to Python"
>>> y="Welcome to Python"
>>> if x.casefold()==y.casefold():
print("Strings are same")
else:
print("Strings are different")

Strings are same
উদাহরণ ২ঃ
>>> x="Welcome to Java"
>>> y="Welcome to Python"
>>> if x.casefold()==y.casefold():
print("Strings are same")
else:
print("Strings are different")
Strings are different

count মেথড ঃ 


কোনাে স্ট্রিং-এর মধ্যে নির্দিষ্ট কোনাে ক্যারেক্টার বা নির্দিষ্ট কোনাে সাৰ স্ট্রিং কত বার আছে তা গণনা করার জন্য count মেথড ব্যবহার করা হয়।

উদাহরণ-১ঃ
>>> X "Welcome to C programming"
>>> x.count('o')
3
>>> x.count('co')
1
উদাহরুণ-২ঃ
>>> x="What do you mean by white hat hacker"
>>> x.count('h')
4
>>> x.count('h',5)
3
>>> x.count('h',5,9)
0
>>>
উদাহরণ-২ এর স্ট্রিং-এ বেশ কয়েকটি h ক্যারেক্টার আছে। ১ম স্টেটমেন্টে মােট কয়টি h আছে তা প্রদর্শন করা হয়েছে। 

২য় স্টেটমেন্টে ৫ নাম্বার ইনডেক্স থেকে শেষ পর্যন্ত মােট কয়টি h আছে তা প্রদর্শন করা হয়েছে। আর সর্বশেষ স্টেটমেন্টে ৫ নাম্বার ইনডেক্স থেকে শুরু করে ৯ নম্বর ইনডেক্স পর্যন্ত কয়টি h আছে তা প্রদর্শিত হয়েছে।

find মেথড ঃ 


কোন স্ট্রিং-এর মধ্যে নির্দিষ্ট কোনাে ক্যারেক্টার বা নির্দিষ্ট কোনাে সাব স্ট্রিং কোন লােকেশনে বা কোন কোন লোকেশনে আছে তা খুঁজে বের করার জন্য find মেথড ব্যবহার করা হয়।

উদাহরণঃ
>>> x="What do you mean by white hat hacker"
>>> x.find('h')
1
>>> x.find('h',5)
21
>>>x.find('ha',5)
26
>>>
উল্লেখিত উদাহরণে “What do you mean by white hat hacker” স্ট্রিং থেকে ১ম কমান্ডের মাধ্যমে 'h' এর লােকেশন 1, ২য় কমান্ডের মাধ্যমে 'h' এর লােকেশন 21 এবং ৩য় কমান্ডের মাধ্যমে 'ha' সাৰ স্ট্রিং-এর লােকেশন 26 প্রদর্শিত হয়েছে।


Python String formatting method Bangla

স্ট্রিং ফরম্যাটিং মেথড (String formatting method) :

Python String formatting method Bangla

একটা ট্রিং-এর ভিতরে একটা ভেরিয়েবল প্রিন্ট করার জন্য Format ফাংশন ব্যবহার করা হয়। মূলত নন স্ট্রিং ডাটার সাথে

স্ট্রিং টাইপের ডাটাকে যুক্ত করে সুন্দর স্ট্রিং আউটপুট তৈরি করতে Format মেথড ব্যবহার করা হয়।

উদাহরণ:

>>> a=10

>>> b=10

>>>print('Value of a = {}, Value of b = {}' .format (a,b) )

Value of a=10, Value of b=20

>>>

উপরােক্ত উদাহরণে a এবং b এর মান স্ট্রিংএর মধ্যে Value of a = 10. Value of b = 20 হিসেবে প্রদর্শিত হয়েছে।

উল্লেখ্য যে, মাল্টিপল ভেরিয়েবলের ক্ষেত্রে প্যারেন্থেসিস () ব্যবহার করা হয় এবং প্রতিটি ভেরিয়েবলকে কমার মাধ্যমে আলাদা

পাইনে স্ট্রিং-কে কোনাে একটা ভেরিয়বলে রেখে ও ফরমেট করা যায়, যেমন-

>>> a = 10

>>> b = 50 

>>> s = "Value of a = {}, Value of b = {}"

>>>print (s.format (a,b) )

value of a=10, Value of b=20

>>>

পাইথনে স্ক্রিং ফরম্যাট দিয়ে যেকোনাে ভেরিয়েবলকেই ফরম্যাট করা যায়। যেমন-

>>>name = "Mahi"

>>>print ('Hi, My name is {}!' .format(name))

Hi, My name is Mahi!

>>>

স্ট্রিং ফরম্যাট ব্যবহার করে কোন লিস্টকে ও প্রিন্ট করা যায়। যেমন-

>>> mylist=[1,2,3,4]

>>> print("The list is :{}".format(mylist))

The list is :[1, 2, 3, 4]

>>>

format ফাংশনের মাধ্যমে একটি স্ট্রিং-এর মধ্যে থাকা কিছু আরগুমেন্টকে রিপ্লেস বা সাৰস্টিটিউট করা যায়। format মেথডের মধ্যকার প্রত্যেকটি আরগুমেন্ট দিয়ে এর সামনে থাকা স্ট্রিং-এর মধ্যের প্লেস হােল্ডারগুলােকে রিপ্লেস করা হয়। 

প্লেস হােল্ডারগুলাে{} এর সাথে ইন্ডেক্স বা নাম ব্যবহার করে  ডিফাইন করা হয়। যেমন-

>>>msg = "My score on C : {0}, Python {1}, Java: {2}". format(6, 6.5, 5)

>>>print(msg)

My score on C: 6, Python: 6.5, Java: 5

>>>

formating এর সময ইন্ডেক্সগুলো়  ০, ১, ২... এভাবে সিরিয়াল নিতে হবে ব্যাপারটা কিন্তু এমন নয়। ইচ্ছে করলেই এগুলাে আগে পরে কিংবা একাধিকবার করে দেয়া যায়।

>>> '{2}, {1}, {0}' format('a', 'b', 'c')

>>> "{0}{1}{0}". format ('abra', 'cad' 'abracadabra')

format মেথডের মধ্যে নামওয়ালা আমেন্ট পাঠিয়ে এবং স্ট্রিং-এর মধ্যে প্লেস হােল্ডারগুলােতে সেই নামে সেগুলােকে ব্যবহার করেও কাজ করা যায়। যেমন-
>>> message = "If x {1} and y + y), then x+y = {2}, format(x + 30, y = 300, 20+200)
>>>print(message)
1 x = 20 and y = 300, then x+y = 320
>>>
এখানে x এর মান হিসেবে x এর মান ২০, y এর মান হিসেবে y এর মান ৩০০ এবং x+y এর মান হিসেবে z এর মান ৩২০
প্রদর্শিত হয়েছে।

ইনডেক্সিং (Indexing) : পাইথনের মাধ্যমে ফ্রিং-এর প্রতিটি উপাদানের ইনডেক্সিং বের করা যায়। একটি ট্রিং-এ প্রতিটি ক্যারেক্টাকাের/উপাদানের একটি নির্দিষ্ট পজিশন ভ্যালু থাকে, যা সংখ্যা দিয়ে প্রকাশ করা হয় এবং যা শুরু হয় শূন্য থেকে।

আর এই পজিশন ভ্যালু অনুসারে ফ্রিং-এর প্রতিটি উপাদানকে উপস্থাপনই ইনডেক্সের কাজ।

যদি "Bangladesh” নামের এই ফ্রিং-এর ইনভেক্সিং করতে চাই, তবে আগে নাম লিখতে হবে তারপর স্কয়ার ব্র্যাকেটের ভিতর নির্দিষ্ট ইনডেক্স নাম্বার দিতে হবে। যেমন-
>>> Name "Bangladesh "
>>> Name[0]
>>>
এখানে ভেরিয়েবল ডিক্লারেশনের পর ইনডেক্স হিসেবে 'Zero' লিথায় আউটপুটে Zero' পজিশনে 'B' কে প্রদর্শন করেছে।

নেগেটিভ নাম্বারেরও ইনভেক্সিং করা যায় অর্থাৎ উল্টো দিক থেকে ইনক্সিং হবে। যেমন (-1) এ কোন ক্যারেক্টারের অবস্থান যদি দেখার জন্য কোডিং হবে নিম্নরুপঃ
>>> Name "Bangladesh"
>>> Name[0]
B
>>>
এবারে আউটপুটে 'h' প্রদর্শন করবে। কারণ, নেগেটিভ নাম্বারের ইনডেক্সিং ক্রিং-এর শেষ ক্যারেক্টার থেকে শুরু হয় আর নেগেটিভ ইনজেঙ্গিং শুরুর মানি -1।

স্লাইসিং (slicing) : প্রতিটি স্ট্রিং-এর ইনডেক্স নাম্বার অনুযায়ী একটি রেঞ্জ থাকে এবং সেই রেঞ্জকে বিভিন্ন ভাগে ভাগ করে। 

স্ট্রিং-এর বিভিন্ন ক্যারেক্টারকে তাদের নিজেদের অবস্থান অনুযায়ী উপস্থাপন করাই গ্লাইসিং।

স্ট্রিং-এর মধ্যে যে ফ্রিং থাকে তাকে সাৰ স্ট্রিং বলে। আর এই সাৰ স্ট্রিং নির্ণয়ের জন্যই প্লাইসিং করা হয়। পাইথনে প্লাইসিং। এর জন্য [:] অপারেটর ব্যবহার করা হয়।

স্লাইসিং-এর ক্ষেত্রে ভেরিয়েবলের মান ইনপুট নিয়ে স্কয়ার এ্যাকেটের মধ্যে স্লাইস এক্সপ্রেশন লিখতে হয়।

কোলনের '' এর আগে স্লাইসের শুরুর ভ্যালু ও কোলনের পরে শ্লাইসের শেষ ভ্যালু দিতে হয়। তবে একেবারে শেষ ভ্যালু স্লাইস হবে না তার আগের।

উদাহরণ।
>>> x = 'Mahbub'
>>> x[0:1]
'M'
>>> x[0:2]
'Ma'
>>> x[4:6]
'ub'
>>> [:]
"Mahbub"
>>> [0:]
'Mahbub'
>>> x [:3]
'Mah'
>>> x[-5:-2]
'ahb'
>>> x[-3:]
'bub'
>>>
উপরােক্ত উদাহরণে বিভিন্ন পর্যায়ের প্রাইসিং এমনকি নেগেটিভ স্লাইসিং-এর ব্যবহার ও তাদের আউটপুট দেখানাে হয়েছে।

স্টিং স্লাইসিং দুটি ইনডেক্স হাক্কাও তৃতীয় প্যারামিটার (Parameter) ও গ্রহণ করতে পারে। তৃতীয় প্যারামিটারটি স্ট্রাইকে নির্দেশ করে। 

অর্থাৎ, স্ট্রিং-এর মধ্য থেকে কোন ক্যারেক্টারগুলাে নিয়ে সাৰ-স্ট্রিং গঠিত হবে তা তৃতীয় প্যারামিটার নির্দেশ করে।
যেমন-

>>> Str = "python program'.
>>> length = len (str) # সর্বশেষ ক্যারেক্টার-এর index জানার জন্য len) ফাংশন ব্যবহার করা হয়েছে।
>>> str [0 : length : 2] # একটি character পরপর প্রিন্ট করছে অথবা প্রতি দ্বিতীয় ক্যারেক্টার নিবে।
'pto rga'
>>> str [0 : length : 3] # দুটি character পরপর প্রিন্ট করছে অথবা প্রতি তৃতীয় ক্যারেক্টার নিবে।
'ph oa'


Python string special operators & string formatting operator bangla

স্ট্রিং-এর বিশেষ ও ফরম্যাটিং অপারেটর :

Python string special operators bangla

পাইথনে স্ট্রিং নিয়ে কাজ করার জন্য বেশ কয়েক ধরনের বিশেষ অপারেটর রয়েছে। যেমন -

Operator Description Example
+ Concatenation - Adds values on either side of the operator a+b will give HelloPython
* Repetition - Creates new strings, concatenating multiple copies of the same string a*2 will give -HelloHello
[ ] Slice - Gives the character from the given index a[1] will give e
[:] Range Slice - Gives the characters from the given range a[1:4] will give ell
in Membership - Returns true if a character exists in the given string H in a will give 1
not in Membership - Returns true if a character does not exist in the given string M not in a will give 1
r/R Raw String - Suppresses actual meaning of
Escape characters. The syntax for raw strings is exactly
the same as for normal strings with the exception
of the raw string operator, the letter ''r," which precedes
the quotation marks. The "r"can be lowercase (r)
or uppercase (R) and must be placed
immediately preceding the first quote mark.
print r'\n' prints \n and print R'\n'prints \n
% Format - Performs String formatting

পাইথনের স্ট্রিং এর জন্য বহুল ব্যবহৃত অপারেটরসমূহ হলােঃ

> কনক্যাটেনেশন অপারেটর (Concatenation operator)

> রিপিটিশন অপারেটর (Repitition operator)

> মেম্বারশীপ অপারেটর (Membership operator)

নিম্নে পাইথনের বহুল ব্যবহৃত অপারেটরসমূহ ও তাদের ব্যবহার আলােচনা করা হলাে :

কনক্যাটেনেশন অপারেটর (Concatenation operator) : 

দুইটি String-কে সংযুক্ত করার পদ্ধতি হচ্ছে String Concatenation। এ জন্য (+) operator ব্যবহার করা হয়। যেমন-

>>> "Hello" + 'world'
Hello world!
>>> print("Mahi" + "&" + "Mahdee")
Mahi & Mahdee
>>>

এখানে “Hello" ও "world" নামে দুইটি আলাদা স্ট্রিং ইনপুট নিয়ে কনক্যাটেনেশন অপারেটর '+' ব্যবহার করে দুইটি স্ট্রিংকে সংযুক্ত করে আউটপুট হিসেবে "Hello world" পাওয়া গেল। 

পরবর্তী কমান্ডে একইভাবে তিনটি স্ট্রিং 'Mahi' '&' এবং 'Mahdee' নামক তিনটি স্ট্রিংকে সংযুক্ত করা হয়েছে।

উল্লেখ্য যে, সংখ্যা ও স্ট্রিংকে এক সাথে Concatenation operator-এর মাধ্যমে সংযুক্ত করা যায় না।

উদাহরণ ঃ
>>> "2" + "2"
22
>>> 1 + "2" + 3 + "4"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

উপরােক্ত উদাহরণে প্রথম কমান্ডে দুইটি স্ট্রিংকে সংযুক্ত করা হয়েছে। কিন্তু পরবর্তী কমান্ডে দুইটি সংখ্যা (1,3) এবং দুইটি স্ট্রিং ('2', '4') সংযুক্ত করার চেষ্টা করলে এরর দেখাচ্ছে।

এ ধরনের সমস্যা সমাধানের ক্ষেত্রে সংখ্যাকে স্ট্রিং-এ রূপান্তর করে নিতে হবে। সংখ্যাকে স্ট্রিং-এ রূপান্তর করার জন্য str ()
ফাংশন ব্যবহার করা হয়। যেমন -

>>> str(1) + '2' + str(3) + '4'
'1234'

এখানে str হলাে string-এর সংক্ষিপ্ত রূপ এবং পাইথনের একটি বিল্ট-ইন ফাংশন। এর মাধ্যমে ইন্টিজার বা পূর্ণ সংখ্যাকে স্ট্রিং ভ্যালুতে রূপান্তর করা হয়।

আবার সংখ্যাকে কোটেশন চিহ্নের মাধ্যমে প্রকাশ করেও Concatenation করা যায়। যেমন-
>>> '1' + '2' + '3' + '4'
'1234'
>>>
দুইটি স্ট্রিং-এর মধ্যে স্পেস দেওয়ার নিয়ম।
দুইটি স্ট্রিং-এর মধ্যে স্পেস দেয়ার জন্য যেকোনাে একটি স্ট্রিং ভ্যালুর কোটেশন চিহ্নের মাঝখানে স্পেস দিতে হবে।
উদাহরণ ঃ
>>> 'Welcome' + 'to' + 'Bangladesh'
'Welcome to Bangladesh'
>>>
উপরােক্ত উদাহরণে 'Welcome ' এর পর একটি স্পেস এবং ' Bangladesh'এর আগে একটি স্পেস দেওয়া হয়েছে। 

ফলে 'Welcome to Bangladesh' প্রদর্শিত হয়েছে।

ৱিপিটিশন অপারেটর (Repitition operator) : 

একই string-এর একাধিক কপির পুনরাবৃত্তির পদ্ধতি হচ্ছে string Repitition।

এ জন্য (*) oporator ব্যবহার করা হয়। এক্ষেত্রে Repetition Oporator (*) এর আগে কত বার পুনরাবৃত্তি
হবে তার সংখ্যা দিয়ে দিতে হবে। যেমন-
>>> 'Desh' * 3
'DeshDeshDesh'
>>> 4*  '5'
'5555'
>>>
এখানে ‘Desh' নামে একটি স্ট্রিং ইনপুট নিয়ে তার পূর্বে ৱিপিটিশন অপারেটর '*' ব্যবহার করে উল্লেখিত স্ট্রিংকে ৩ বার পুনরাবৃত্তি ঘটিয়ে আউটপুট হিসেবে 'Desh Desh Desh ' পাওয়া গেল। 

পরবর্তী কমান্ডে একইভাবে স্ট্রিং '5' কে ৪ বার পুনরাবৃত্তি ঘটিয়ে আউটপুট হিসেবে '5555' পাওয়া গেল।

উল্লেখ্য যে, একাধিক স্ট্রিংকে এক সাথে Repitition operator-এর মাধ্যমে একাধিক কপি তৈরি করা যায় না কিংবা ফ্লোটিং পয়েন্ট টাইপ ডাটার সঙ্গে ও স্ট্রিং টাইপের ডাটাকে Repitition operator-এর মাধ্যমে পুনরাবৃত্তি করা যায় না।

উদাহরণঃ
>>>  '17' * '87'
TypeError: can't multiply sequence by non-int of type 'str'
>>> 'python' * 7.0
TypeError: can't multiply sequence by non-int of type 'float'

উপরােক্ত উদাহরণে প্রথম কমান্ডে দুইটি স্ট্রিং-এর মধ্যে Repitition operator ব্যবহার করা হয়েছে। 

আবার পরবর্তী কমান্ডে একটি স্ট্রিং ('python') ও একটি ফ্লোটিং পয়েন্ট ডাটার মাঝখানে Repitition operator ব্যবহার করার চেষ্টা করা হয়েছে। উভয় ক্ষেত্রেই প্রােগ্রামে এরর দেখাচ্ছে।

মেম্বারশিপ অপারেটর (Membership operator) :

সিকুয়েনশিয়াল ডাটা টাইপের ক্ষেত্রে Membership (সদস্য) পরীক্ষা করার জন্য অর্থাৎ কেউ কোনাে নির্দিষ্ট গ্রুপের সদস্য কি না নির্ণয়ের জন্য মেম্বারশিপ অপারেটর ব্যবহার করা হয়। মেম্বারশিপ অপারেটর হিসেবে in এবং not in দুটি অপারেটর ব্যবহার করা হয়। 

in অপারেটর ঃ 

যদি কোনাে একটি ক্যারেক্টার কোনাে নির্দিষ্ট স্ট্রিং-এর অন্তর্ভুক্ত হয় তবে রিটার্ন আসবে "True" আর যদি অন্তর্ভুক্ত না হয় তবে রিটার্ন আসবে "False"।

উদাহরণ :
>>>
>>> 'm' in 'mahi'
True
>>> ‘d' in 'mahi'
False
>>> 'h' in 'mahi'
True
>>> 'p' in 'mahi'
Flase
>>>

উপরােক্ত উদাহরণে “m in mahi" এ "m " অক্ষরটি "mahi" স্ট্রিং ভ্যালুর মধ্যে আছে তাই "m" অক্ষরটি "mahi" স্ট্রিং ভ্যালুর মধ্যে আছে বলেই রিটার্ন ভ্যালু হলাে "True", অপরদিকে "d in mahi" এ "d " অক্ষরটি "mahi" স্ট্রিং ভ্যালুর মধ্যে নেই তাই "d" অক্ষরটি "mahi" স্ট্রিং ভ্যালুর মধ্যে নেই বলেই রিটার্ন ভ্যালু হল "False"।

not in অপারেটর : in অপারেটরের ঠিক বিপরীত হলাে not in অপারেটর। অর্থাৎ যদি কোনাে একটি ক্যারেক্টার কোনাে নির্দিষ্ট স্ট্রিং-এর অন্তর্ভুক্ত না হয় তবে রিটার্ন আসবে "True" আর যদি অন্তর্ভুক্ত হয় তবে রিটার্ন আসবে "False"।


Python Accessing Vaues to String & Updating String Bangla

Python Accessing Vaues to String & Updating String Bangla

স্ট্রিং-এর মান এক্সেসিং (Accessing values) ঃ 

স্ট্রিং-এর ভ্যালু এক্সেসিং-এর ক্ষেত্রে ইনডেক্স একটি গুরুত্বপূর্ণ বিষয়

স্ট্রিং-এর ইনডেক্স সবসময় ০ দিয়ে শুরু হয়। যদি 'Python program' স্ট্রিংটিকে ইনডেক্স আকারে সাজাই তাহলে এর ইনডেক্সিং

p y   p r o g r a m
0 1 2 3 4 5 6 7 8 9

এখানে স্পেস (Space)-কে একটি ক্যারেক্টার হিসেবে বিবেচনা করা হয়।

স্ট্রিং-এর মান নেগেটিভ ইনডেক্স দ্বারা এক্সেসিং (Accessing values by negative index number) ও নেগেটিভ

ইনডে দ্বারাও স্ট্রিং-এর মান এক্সেস করা যায়। যেমন-

p y   p r o g r a m
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1

উদাহরণ -
>>> x = "Computer Technology"
>>> x[0]
'C'
>>> x[5]
't'
>>> x[9]
'T'
>>> x[20]
Traceback (most recent call last):
File "", line 1, in 
x[20],
IndexError: String index out of range
>>>
পাইথনে স্ট্রিং এর মান অ্যাক্সেস করার জন্য ভেরিয়েবলের পর ব্র্যাকেট চিহ্নের '[ ]' ভিতর ইনডেক্স নম্বর লিখতে হয়। ইনডেক্স নম্বরটি পজিটিভ বা নেগেটিভ যে-কোনােটি হতে পারে। যদি ইনডেক্স নম্বরটি স্ট্রিং এর তুলনায় রড হয় তবে আউটপুটে Index Error নির্শিত হবে।

ইনডেক্স রেঞ্জ ব্যবহার করে স্ট্রিং এর মান অ্যাক্সেসিং : 

ইনডেক্স রেঞ্জ বুঝাতে ব্র্যাকেটেড চিহ্নের ভিতর কোলন (:) চিহ্ন ব্যবহার করা হয়। যেমন -
x [1 : 4] অথবা x [: 4] অথবা, x[2:] ইত্যাদি ।
ইনডেক্স রেঞ্জ ব্যবহার করে ও কোন স্ট্রিং হতে এর মান অ্যাক্সেস করা যায়।

উদাহরণ-১:
>>> x  = 'Computer'
>>> x[:1]
'C'
>>> x[1:3]
'om'
>>> x[2:]
'mputer'
>>> x[2:4]
'mp'
>>> x[:-2]
'Comput'
>>>
উদাহরণ-২ :
var1 = 'Hello world!'
var2 = "Python Programming"
print ("var1[0];  ", var1[0])
print (var2[1:5]:  ", var2[1:5])
Output :
var1[0]:  H
var2[1:53]: ytho

স্ট্রিং আপডেটিং (Updating String) : 

কোনাে স্ট্রিং-এর সাথে কোনাে ভেরিয়েবলকে এসাইন করে স্ট্রিং-কে আপভেট করা যায়। যেমন-
var1 = 'Hello World!'
print("Updated String : ", var1[:6] + 'Python')
Output :
Updated String : Hello Python

এসকেপ ক্যারেক্টার (Escape characters in python) :

আউটপুটকে দৃষ্টিনন্দন, পরিচ্ছন্ন ও স্পষ্টভাবে স্ক্রিনে প্রদর্শনের জন্য ব্যাকগ্লাশ সহযােগে কতগুলাে বিশেষ ক্যারেক্টার ব্যবহার করা হয়। 

এদেরকে ব্যাকশ ক্যারেক্টার কনস্ট্যান্ট বা এসকেপ ক্যারেক্টার বলে। নিম্নে পাইথনে ব্যবহৃত এসকেপ ক্যারেক্টারসমূহ ও তাদের ব্যবহার উল্লেখ করা হলাে। যেমন-
এসকেপ ক্যারেক্টার ব্যবহার
\e Escape করার জন্য
\' সিঙ্গেল কোট (') প্রদর্শনের জন্য
\" ডাবল কোট (") প্রদর্শনের জন্য
\n আউটপুটকে লাইন নতুন লাইনে প্রদর্শনের জন্য বা লাইন ব্রেক দেওয়ার জন্য
\a বেল বা এলার্ট (সতর্ক সংকেত) শোনানোর জন্য
\b ব্যাকস্পেস দেয়ার জন্য
\\ একটা ব্যাকস্ল্যাশ (\) প্রদর্শনের জন্য
\s স্পেস দেয়ার জন্য
\f ফর্মফিড
\N{name} ইউনিকোড ক্যারেক্টার এর নাম
\Uxxxxxxxx ৩২ বিট হেক্সাডেসিম্যাল ভ্যালু বিশিষ্ট ইউনিকোড ক্যারেক্টার প্রদর্শনের জন্য
\r ASCII ক্যারিজ রিটার্ন (ম্যাক ওস এক্স এ নিউ লাইন ক্যারেক্টার)
\t আউটপুট ডান দিকে ট্যাব দূরত্বে প্রদর্শনের জন্য
\v আউটপুট ভাটিক্যালি ট্যাব ট্যাব দূরত্বে প্রদর্শনের জন্য
\ooo '০০০' অক্টাল ভ্যালু বিশিষ্ট ক্যারেক্টার প্রদর্শনের জন্য
উদাহরণ-১ :
>>> print('A\nB\nC')
>>> print('D\tE\tF)
>>> print('WX\bYZ')
>>> print('1\a2\a3\a4\a5\a6)
>>>
আউটপুট :
A
B
C
D    E    F
WYZ
123456

উদাহরণ-২:
>>> print('Do you know \'Mahil\' is my Name!')
>>> print("Do you know \"Mahi\" is my Name!")
আউটপুট :
Do you know 'Mahi' is my Name!
Do you know "Mahi" is my Name!
উদাহরণ-৩ঃ লাইনে ব্যাকশ্লাশ আনার জন্য
>>> print("Names: Tonny\\Munny\\Sumaiya\\Tahsin\\Mahi\|Suhaima\\Mahdee")
আউটপুট :
Tonny\Munny\Sumaiya\Tahsin\Mahi\Suhaima\Mahdee
উদাহরণ-৪ঃ লাইনে সিঙ্গেল কোটেশন আনার জন্য
>>> print ('What\'s your name?')
আউটপুট :
What's your name?

র’ স্ট্রিং (Raw String) ঃ

Escape Sequence এ কিছু কিছু ক্যারেক্টার আছে যাদের নিয়ে পাইথনে কাজ করতে গেলে সমস্যায় পড়তে হয়। যেমন-\n।

উদাহরণঃ
>>> print("s1\name\address\bdate")
s1
ame?ddress?date
>>>
উপরােক্ত প্রোগ্রামটি রান করলে name , এর ক্ষেত্রে arne, address-এর ক্ষেত্রে ddress এবং bdate-এর ক্ষেত্রে date দেখিয়েছে। 

কারণ এসকেপ সিকুয়েন্স হিসেবে ব্যবহৃত ক্যারেক্টার (\n, \a এবং \b) সমূহের প্রভাব আউটপুটে পড়েছে। ফলে আউটপুটে কাংক্ষিত ফলাফল s1\name\address\bdate পাওয়া যাচ্ছে না। 

এসকেপ সিকুয়েন্স ক্যারেক্টারসমূহ ব্যবহারের ফলে আউটপুটে প্রভাব বিস্তারকারী এ ধরনের সমস্যা এড়ানাের জন্য যে পদ্ধতি ব্যবহার করা হয় তাই ‘র’ স্ট্রিং (Raw string)।

পাইথনে "r" ব্যবহার করে র’ স্ট্রিং (Raw string) কে বুঝানাে হয়। এক্ষেত্রে স্ট্রিং ভ্যালুতে যে কোটেশন চিহ্ন ব্যবহার করা হয় তার পূর্বেই "r" বসাতে হয়। যেমন-
>>> print(r"s1\name\address\bdate")
s1\name\address\bdate
উপরােক্ত প্রােগ্রামে "r" বসানাের ফলে এবারে ব্যাকস্লাশ সহ আউটপুট (s1\name\address\bdate) পাওয়া যাচ্ছে।
আবার যদি প্রােগ্রামে double backslash এর প্রয়ােজন পরে, তাহলে কোডিং হবে নিম্নরূপঃ
>>> print(r"Welcome\\")
Welcome\\

Python String Bangla Tutorial

Python String Bangla Tutorial

ভূমিকা (Introduction):

পাইথনের একটি গুরুত্বপূর্ণ ডাটা টাইপ হলাে স্ট্রিং। অন্যান্য প্রােগ্রামিং ল্যাংগুয়েজের মতােই পাইথনেও ট্রিং গঠিত হয় বিভিন্ন

টেক্সট ক্যারেক্টার নিয়ে। যেমন- কোনাে একটি অক্ষর বা ক্যারেক্টার (a.b,c,d.x, y,z,1,2,3) স্ট্রিং হতে পারে কিংবা এক বা

একাধিক বাক্য বা লাইন নিয়ে ও (Hello Mahi!) ফ্রি হয়। বাংলা ভাষার বর্ণ, শব্দ, বাক্য সমস্ত কিছুকে একত্রে প্রােগ্রামিং-এ স্ট্রিং

বা স্ট্রিং ভ্যালু বলা হয়। আমরা কোনাে সংখ্যাকে যেমন নাম্বার বলি ঠিক তেমনি প্রােগ্রামিং-এ যে-কোন টেক্সটকে স্ট্রিং বলা হয়।

স্ট্রিং ভ্যালুকে প্রকাশ করা হয় সিঙ্গেল কোটেশন ('String') অথবা, ডাবল কোটেশন ("String") চিহ্ন ব্যবহার করে ।। উক্ত অধ্যায়ে আমরা স্ট্রিং সম্পর্কিত বিশদ আলােচনা করব।

স্ট্রিং ডিক্লারেশন (Declaration of string in python) :

স্ট্রিং হলাে এক বা একাধিক ক্যারেক্টার (বর্ণ, সংখ্যা, চিহ্ন) এর সিকুয়েন্স, যা কনস্ট্যান্ট অথবা ভেরিয়েবল হতে পারে। অথবা, সিঙ্গেল কোটেশন বা ডাবল কোটেশন-এর ভিতরে যা-ই থাকে, তাকেই স্ট্রিং বলে। পাইথনে দুইভাবে স্ট্রিং ডিক্লেয়ার করা যায়, সিঙ্গেল কোটেশন অথবা ডাবল কোটেশন দিয়ে। তবে শর্ত হলাে, যে কোটেশন দিয়ে শুরু হবে সেই কোটেশন দিয়েই শেষ করতে হবে, অন্যথায় প্রােগ্রামে এরর দেখাবে। যেমন-  


>>> str = 'Hello'
>>> str 1 = "world" 
>>> st
'Hello' 
>>> str 1 "
'world' 
>>> str 2 = 'Hello' 

File "<stdin>" line  str 2 = 'Hello"
Syntax Error : EOL while scanning string literal. 

Str 2  'Hello' এ লাইনটিতে এরর দেখাচ্ছে, কারণ String-টি সিঙ্গেল কোটেশন দিয়ে শুরু করা হয়েছে এবং ডাবল কোটেশন দিয়ে শেষ করা হয়েছে।  

স্ট্রিং ডিক্লারেশনে সিঙ্গেল কোটেশন অথবা ডাবল কোটেশন উভয় ক্ষেত্রেই কিছু সীমাবদ্ধতা রয়েছে। 

যদি স্ট্রিং-এর মধ্যে কোনাে সিঙ্গেল Word বা কোনাে নির্দিষ্ট অংশ Identify করার জন্য সিঙ্গেল কোটেশনের ভিতরে সিঙ্গেল কোটেশন বা ডাবল কোটেশন এর ভিতরে ডাবল কোটেশন ব্যবহার করি তবে সে ক্ষেত্রে প্রােগ্রামে এরর দেখাবে। যেমন- সিঙ্গেল কোটেশন-এর ক্ষেত্রে :


> > > C = 'Python is a 'Programming' Language, I want to learn 
python. File "<stdin>"line 1  C = "Python is a 'Programming' Language, I want to learn python."  
SyntaxError: invalid syntax

উপরােক্ত উদাহরণটি লক্ষ্য করলে দেখা যায় যে, এতে একটি সিঙ্গেল কোট (') স্ট্রিং এর মধ্যে আরেকটি সিঙ্গেল কোট স্ট্রি, রয়েছে। ফলে পাইলন বুঝতে পারে না আসলে মূল স্ট্রিং কোনটি। তাই আউটপুটে syntax error প্রদর্শন করছে। এরূপ সমস্যা সমাধানের জন্য স্ট্রিং এর শুরু ও শেষ বুঝানাের জন্য ডাবল কোট (") ব্যবহার করা যেতে পারে। যেমন-  
>>> c = "Pythen is a 'Programming' Language, I want to learn python." 
>>> c 
Pythen is a 'Programming Language', I want to learn python." 
ডাবল কোটেশন-এর ক্ষেত্রে 
 >>> c = "Pylhon is a "Programming Language",I want to learn python.  
File "<stdin?", line 1  
c = "Pylhon is a "Programming Language. I want to learn python."  

SyntaxError: invalid syntax এক্ষেত্রে ও syntax error প্রদর্শিত হয়েছে। এরূপ সমস্যা সমাধানের জন্য প্রােগ্রামে ব্যাকস্ল্যাশ (\) চিহ্ন ব্যবহার করা হয়। কারণ ব্যাকস্ল্যাশ তার ঠিক পরের সিঙ্গেল কোট বা ডাবল কোট ক্যারেকটারকে এস্কেপ করে। যেমন-  
>>> c = "Pyihon is a \"Programning\" Language, I want to learn python.
>>> c 
"Python is a "Programming" Language. I want to learn python.'

সিঙ্গেল কোটের ক্ষেত্রে সংঘটিত সমস্যাটি ও একইভাবে সমাধান করা যায়। যেমন-  

>>> C = Pyihon is a \'Programming Language. I want to learn python. 
>> C
"Python is a 'Programming Language. I want to learn python."

Python standard data types in bangla

ডাটা টাইপ (Standard data types in python) ঃ

Python standard data types in bangla

প্রােগ্রামিং মানেই হলাে ডাটা প্রসেসিং। ডাটা ছাড়া প্রােগ্রামিং অসম্ভব। 

কম্পিউটারে কোনাে প্রােগ্রাম লিখতে হলে কম্পিউটারকে অবশ্যই ঐ নির্দিষ্ট প্রােগ্রামের জন্য ডাটা ইনপুট দিতে হবে। প্রােগ্রামে ব্যবহৃত যে-কোনাে মানই ডাটা। 

পাইথনে ইন্টিজার, ফ্লোটিং পয়েন্ট, ক্যারেক্টার, স্ট্রিং, লজিক্যাল ইত্যাদি প্রায় সব ধরনের ডাটা নিয়েই কাজ করা যায়। 

তবে ডাটার মান, ধরন এবং মেমরি স্পেস সংরক্ষণের ভিত্তিতে পাইথনে পাঁচ ধরনের স্ট্যান্ডার্ড ডাটা টাইপ রয়েছে। যেমন 

> Numbers

> String

> List

> Tuple

> Dictionary

সংখ্যা (Numbers) ঃ 

Numbers হচ্ছে যে-কোন প্রকারের সংখ্যা। পাইথন ৪ ধরনের সংখ্যা (Numbers) সাপাের্ট করে। যেমন 

> int (ছােট পূর্ণসংখ্যা)

> long (বড় পূর্ণসংখ্যা, octal কিংবা hexadecimal আকারে প্রকাশ করা যায়)

> float (দশমিক বিশিষ্ট সংখ্যা)

> complex (জটিল সংখ্যা)

উদাহরণ :
int long float complex
10 51924361L 0.0 3.14j
080 OxDEFABCECBDAECBFBAEI 32.3 + e18 .876j
-0430 535533629843L –90. -.6545 + 0J
100 -0x19323L 15.20 45.j
-786 0122L -21.4 9.322e-34j

স্ট্রিং (Strings) ঃ

স্ট্রিং হচ্ছে সিঙ্গেল কোটেশন ('') বা ডাবল কোটেশন (“ ") এর ভেতর ব্যবহৃত শূন্য বা তার অধিক অক্ষর
(সংখ্যা, চিহ্ন বা বর্ণ)।

যেমন- ('abc') অথবা, ("abc")
বিভিন্ন রকম Slice operator ([] and [:]) এর সাহায্য নিয়ে নির্ধারিত String-এর অংশবিশেষ অথবা বিভিন্ন পুনর্বিন্যাস আউটপুট হিসেবে দেখা যায়। যেমন

str = 'Hello Mahdee!'
print (str) # Prints complete string
print (str[0]) # Prints first character of the string
print (str[2:5]) # Prints characters starting from 3rd to 5th
print (str[2:]) # Prints string starting from 3rd character
print (str * 2) # Prints string two times
print (str + "Welcome") # Prints concatenated string

Output :
Hello Mahdee!
H
llo
llo Mahdee !
Hello Mahdee! Hello Mahdee!
Hello MahdeelWelcome

লিস্ট (Lists) ঃ 

লিস্ট হলাে ব্র্যাকেট ( []) এ আবদ্ধ ও কমা (commas) দিয়ে আলাদা করা আইটেম আমরা যখন একাধিক
ডাটা একসঙ্গে রাখতে চাই, তখন লিস্ট ব্যবহার করতে পারি। যেমন

list = [ 'Mahi', 786, 2.23, 'Mahdee', 70.2 ]
tinylist = [123, 'Mahdee']
print list # Prints complete list
print list[0] # Prints first element of the list
print list[1:3] # Prints elements starting from 2nd till 3rd
print list[2:] # Prints elements starting from 3rd element
print tinylist * 2 # Prints list two times
print list + tinylist # Prints concatenated lists 
Output :
['Mahi', 786, 2.23, 'john', 70.200000000000003]  
Mahi  
[786, 2.23]
[2.23, 'Mahdee', 70.200000000000003] 
[123, 'Mahdee', 123, 'Mahdee']
['Mahi', 786, 2.23, 'Mahdee', 70.200000000000003, 123, "Mahdee']

টাপল (Tuples) ঃ 

Tuple আর List মূলত একই রকম, শুধু পার্থক্য হচ্ছে যে Tuple এ প্যারেনথেসিস () ব্যবহৃত হয়, কিন্তু List এ ব্র্যাকেট[ ] ব্যবহৃত হয়। 

এ ছাড়াও Tuple-এর মান পরে পরিবর্তন করা যায়না (read-only values), কিন্তু List এর মান
আপডেট করা যায়।

টাপল এর উদাহরণ ঃ

tuple = ( 'Mahi, 786, 2.23, 'Mahdee', 70.2 )
tinytuple = (123, 'Mahi')
print (tuple) # Prints complete tuple
print (tuple[0]) # Prints first element of the tuple
print (tuple[1:3]) # Prints elements starting from 2nd till 3rd
print (tuple[2:]) # Prints elements starting from 3rd element
print (tinytuple *) 2 # Prints tuple two times
print (tuple + tinytuple) # Prints concatenated tuple

Output :

('Mahi', 786, 2.23, 'Mahdee', 70.200000000000003)
Mahi
(786, 2.23)
(2.23, 'Mahdee', 70.200000000000003)
(123, 'Mahdee'; 123, 'Mahdee')
('Mah1' 786, 2.23, Mahdee'. 70.200000000000003, 123, 'Mahdee')
নিম্নের Tuple কোডটি ভুল, কারণ এখানে Tuple-এর মান পরিবর্তন/ আপডেট করার চেষ্টা করা হয়েছে। কিন্তু List-এর জন্য কোডটি সঠিক।

tuple = (* Mahi', 786) 2.23, 'Mahdee', 70.2 )
31st = [ 'Mahi', 786, 2.23, 'Mahdee', 70.2 ]
tuple[2] = 1000 # Invalid syntax with tuple
list[2] = 1000 # Valid syntax with listlist

ডিকশন্সারি (Dictionary) :

ডিকশনারিতে Key-value জোড়ায় জোড়ায় থাকে। যে-কোনাে ডাটা টাইপ Key হতে পারে, যদিও
সাধারণত Numbers বা Strings-ই Key হিসেবে রেকর্ডেড হয়। অন্যদিকে, যে-কোনাে সংখ্যা/ অবজেক্টই value হিসেবে রেকর্ড হতে
পারে। ডিকশনারিকে ব্র্যাকেট {}-এর সাহায্যে প্রকাশ করা হয় এবং ব্র্যাকেটের [] সাহায্যে ডিকশনারিতে Value এসাইন করা হয়। যেমন -

dict = { }
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': John', 'code':6734, 'dept': 'sales'}
print (dict['one']) # Prints value for 'one' key
print (dict[2]) # Prints value for 2 key
print (tinydict) # Prints complete dictionary
print (tinydict.keys()) # Prints all the keys
print (tinydict.values()) # Prints all the values
Output :
This is one
This is two
{'name' : 'john', code' : 6734, 'dept': 'sales'}
[dict_keys (['name', 'code', 'dept'1)
[dict_values ('john', 6734, 'sales']
উল্লেখ্য যে, ডিকশনারিতে ক্রম, সিরিয়াল বা অর্ডার ঠিক রাখার কোনাে ব্যপার নেই |

Python Variables & Data Types | পাইথন ভেরিয়েবল ও ডাটা টাইপ

Python Variables & Data Types

ভূমিকা (Introduction) :

প্রােগ্রামে সাধারণত ডাটা নিয়ে কাজ করা হয়। প্রােগ্রামে ব্যবহারের জন্য ডাটাকে প্রথমে মেমরিতে সংরক্ষণ করা হয় এবং

প্রয়ােজনে মেমরিতে থেকে ডাটা উত্তোলণ করে কাজে লাগানাে হয়। নিম্ন পর্যায়ের ভাষায় মেমরিতে ডাটা রাখার জন্য সরাসরি বিট,

বাইট এবং মেমরি অ্যাড্রেস ব্যবহার করা হয়, যা বড় বড় প্রােগ্রামের জন্য জটিল এবং কষ্টকর। কারণ লক্ষ লক্ষ অ্যাড্রেসের মধ্যে

কখন কোন অ্যাড্রেসে কোন ডাটা রাখা হলাে তা মনে রাখা অসম্ভব। এ অসুবিধা দূর করার জন্য এবং প্রােগ্রামকে সহজ করার লক্ষ্যে

হাই লেভেল ল্যাংগুয়েজ বিট বা বাইট ও মেমরি অ্যাড্রেসের পরিবর্তে ভেরিয়েবল ব্যবহার করা হয়। ভেরিয়েবল হলাে প্রােগ্রামার

কর্তৃক দেয়া কয়েকটি বিট বা বাইট সংরক্ষণের জন্য মেমরি স্পেসের নাম, যে নামের অধীনে ডাটা রাখা হয়। এক্ষেত্রে প্রােগ্রামার বা

প্রোগ্রাম ব্যবহারকারীর জানার দরকার নেই যে মেমরির কোন অ্যাড্রেসে কোন ডাটা রাখা হয়। কেবল সঠিক নিয়মে উপযুক্ত ডাটা

টাইপসহ প্রয়ােজনমতাে ভেরিয়েবল ঘােষণা করে ডাটা রাখা যায় এবং প্রয়ােজনে তা সংরক্ষণ করে পরবর্তীতে ব্যবহার করা যায় ।

উল্লেখ্য, কোনাে ভেরিয়েবলে যে-কোনাে সময় কেবল একটি মাত্র ডাটা রাখা সম্ভব। ভেরিয়েবলের পুরাতন মান সর্বদাই নতুন মান

দ্বারা প্রতিস্থাপিত হয়।

অন্যান্য প্রোগ্রামের মতাে প্রতিটি পাইথন প্রােগ্রাম এক গুচ্ছ এক্সপ্রেশন বা স্টেটমেন্টের সমন্বয়ে গঠিত। প্রতিটি এক্সপ্রেশন

আবার কতগুলাে প্রতীক, সংকেত, ভেরিয়েবল তথা টোকেন, কী-ওয়ার্ড, অপারেটর, অপারেন্ড ইত্যাদির সমন্বয়ে গঠিত। এদের

কোনােটি প্রােগ্রামে ব্যবহৃত ডাটা ধারণ করে, কোনােটি ডাটার গাণিতিক যৌক্তিক ক্রিয়া সম্পন্ন করে, কোনােটি প্রােগ্রামে ব্যবহৃত

অন্যান্য স্টেটমেন্ট নিয়ন্ত্রণ করে, আবার কোনােটি বিশেষ প্রােগ্রাম কোড উৎপন্ন করে।

ডাটা ও টোকেন (Data & Token) :

প্রােগ্রামে ব্যবহৃত যে-কোনাে মানই (value) ডাটা। প্রােগ্রামিং এ বিভিন্ন প্রকার ডাটা নিয়ে কাজ করা হয়। 

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

কোন ধরনের Data মেমরিতে কত বাইট জায়গা নেবে তা কম্পাইলারের উপর নির্ভর করে।

উদাহরণঃ

> পূর্ণ সংখ্যা (0,1,2,15,25,100)
> প্রকৃত সংখ্যা (10.25,30.25,100.20)
> বিভিন্ন বর্ণ (a........z,A........z,@#&........) প্রভৃতি।

পাইথনে ব্যবহৃত বিভিন্ন ধরনের ডাটাসমূহ মূলত ক্যারেক্টার ব্যবহার করেই লিখতে হয়। এ সকল ক্যারেক্টারসমূহকে নিম্নলিখিত

৪টি গ্রুপে বিভক্ত করা হয়, যথা
> বর্ণ (Letters)
> সংখ্যা (Digits)
> বিশেষ ধরনের ক্যারেক্টার (Special character)
> হােয়াইট স্পেস (White spaces)

টোকেন (Token) :  

'Token' ইংরেজি শব্দটির বাংলা অর্থ হচ্ছে প্রতীক বা চিহ্ন। যে-কোনাে প্রােগ্রাম কতকগুলাে Statement নিয়ে গঠিত। 

আবার প্রতিটি Statement কতকগুলাে Word এবং Character-এর সমষ্টি। 

পাইথন প্রােগ্রামে ব্যবহৃত এরূপ Word বা Character ও Symbol সমূহকে একত্রে Token বলে। পাইথনে ব্যবহৃত টোকেনসমূহ নিম্নরূপ-

টোকেন ব্যবহার
কী ওয়ার্ড (Keyword) প্রােগ্রামে কোড লেখার জন্য ব্যবহৃত হয়।
আইডেন্টিফায়ার (Identifier) ভেরিয়েবল, ফাংশন, স্ট্রাকচার, ক্লাস ইত্যাদি নামকরণের জন্য ব্যবহৃত হয়।
স্ট্রিং (String) প্রােগ্রামে একগুচ্ছ ক্যারেক্টার নিয়ে কাজ করার জন্য ব্যবহৃত হয়।
পাঙ্কচুয়েটর (Punctuator) কী-ওয়ার্ড, অপারেটর, অপারেন্ডর, আইডেন্টিফায়ারের মধ্যে পার্থক্য করার জন্য।
স্পেশাল সিম্বল (Special symbol) বিশেষ কাজে ব্যবহার করার জন্য।
অপারেটর, অপারেন্ড এবং এক্সপ্রেশন বিভিন্ন গাণিতিক ও যৌক্তিক অপারেশন সম্পন্ন করার জন্য।

ভেরিয়েবল ও ভেরিয়েবলের মান নির্ধারণ (Variables & assigning values to variables) ঃ


ভেরিয়েবল (Variables) ভেরিয়েবল হচ্ছে কম্পিউটার মেমরির সেই নির্ধারিত জায়গা যেখানে বিভিন্ন মান (value) জমা করে ব্যথা হয়। 

ভেরিয়েবল তৈরি করা মানেই কম্পিউটারের মেমরিতে একটা নির্দিষ্ট স্পেস সঞ্চয় করে রাখা। 

কোন ভেরিয়েবল কী অন্তরে জট ব্রেকর্ড বা স্টোর করবে সেটা ঐ ভেরিয়েবলের উপর নির্ভর করে। 

আমরা যখন কোনাে ভেরিয়েবল ডিক্লেয়ার করি তখন কম্পিউটাৰ সেই ভেরিয়েবলের জন্য কিছু নির্দিষ্ট মেমরি নির্ধারণ করে দেয়। প্রতিটি ভেরিয়েবল এর মেমরি অ্যাড্রেস ইউনিক হয়।

প্রেমের প্রয়ােজনে ওই ভেরিয়েবল তথা নাম সম্পূর্ণ মেমরি লােকেশনে ভ্যালু জমা করে রাখা যায়। 

আবার প্রয়ােজনের সময় সেই নাম ব্যবহার করে ওই লোকেশনের ভ্যালুকে অ্যাক্সেস করা যায় এবং কাজে লাগানাে যায়।

এ জন্য অবশ্যই ভেরিয়েবল-এর নামটি অর্থপূর্ণ হওয়া উচিত।
যেমন- number 1 = 10
name = "Asad"
একটি ভেরিয়েলের মধ্যে কোনাে ভ্যালু জমা রাখার জন্য একটি সমান (=) চিহ্ন ব্যবহার করা হয়। 

আমরা যদি কোনাে ভ্যালু কোনাে একটা ভেরিয়েবলে স্টোর করি (সমান চিহ্ন দিয়ে) এবং এন্টার প্রেস করি তখন সমান চিহ্নের ডান পাশের ভ্যালুটি সমান চিহ্নের বাম পাশের ভেরিয়েবলে জমা হয়ে যাবে, যেটাকে আমরা পরবর্তী স্টেটমেন্টে নাম উল্লেখপূর্বক ব্যবহার করতে পারব।

ভেরিয়েবলের মান নির্ধারণ (Assigning values to variables) : 

পাইথনে সমতা চিহ্নের (=) মাধ্যমে কোনাে ধরনের
মান (value) ভেরিয়েবল হিসেবে স্টোর করা যায়, এক্ষেত্রে আলাদা করে কোনাে ডিক্লারেশনের প্রয়ােজন নেই। সমতা চিহ্নের বাম পাশে ব্যবহৃত শব্দটি ভেরিয়েবলের নাম এবং ডান পাশের সংখ্যাটি ভেরিয়েবলের মান নির্দেশ করে। যেমন -
>>> num = 10 
>>> print(num)
10
>>> print(num*2)
20
>>> print(num+5)
15
উপরােক্ত উদাহরণে প্রথমে ভেরিয়েবল num এর মান ১০ জমা রাখা হয়েছে। 

এরপরের লাইনে print() ফাংশনের আগ্রুমেন্ট হিসেবে সেই num কেই পাঠানাে হয়েছে। 

প্রিন্ট ফাংশনের আগ্রুমেন্ট হিসেবে কিছু পাঠালে তাই প্রিন্ট হয়। সেজন্য num এর মান হিসেবে জিনে ১০ প্রিন্ট হয়েছে। 

পরবর্তী লাইনে num এর মানকে ২ দিয়ে গুণ করলে ২০ পাওয়া যায়। তাই আউটপুটে ২০ দেখাচ্ছে।
এমনিভাবে পরবর্ত লাইনের আউটপুট ১৫ দেখানাে হয়েছে।

ভেরিয়েবলের মান পুনঃনির্ধারণ (Re-assignment of values to variables) ঃ 


পাইথনে কোনাে ভেরিয়েবলের মধ্যে একাধিকবার নতুন নতুন ভ্যালু স্টোর করা যায়। এভাবে কোনাে ভেরিয়েবলের মান বার বার নির্ধারণ করার এই প্রক্রিয়াকে রিঅ্যাসাইনমেন্ট অফ ভেরিয়েবল বা ভেরিয়েবলের মান পুনঃনির্ধারণ বলে। তবে এক্ষেত্রে সর্বশেষ স্টোরকৃত মানটিই ভেরিয়েবলের মান হিসেবে জমা থাকে। যেমন-  
>>> x=110 
>>> x 
110 
>>> x=154.32 
>>> x
154.32 
>>> x = "Rohan" 
>>> x  
Rohan
উপরােক্ত উদাহরণে x এর মান হিসেবে একটি পূর্ণ সংখ্যা ১১০ প্রিন্ট হবে। পরবর্তী দুটো কমান্ডে এর x মান পরিবর্তিত হয়ে যথাক্রমে দশমিক সংখ্যা ১৫৪.৩২ এবং স্ট্রিং Rohan-কে আউটপুট হিসেবে প্রিন্ট করার জন্য ব্যবহার করা হয়েছে।  পাইথনে ভেরিয়েবলে নির্দিষ্ট কোনাে ডাটা টাইপ নেই। তাই একই ভ্যারিয়েবল প্রথমে একটি নাম্বার এবং পরবর্তীতে সেটাতে একটি স্ট্রিং জমা রাখা গেছে।  
 
উল্লেখ্য যে, আমরা প্রথম যখন কোনাে একটা ভেরিয়েবলে কোনাে ভ্যালু এসাইন করি তখন সেই ভেরিয়েবলটা initialize হয় । পরবর্তীতে আমরা ঐ ভেরিয়েবলটাতেই আবার বিভিন্ন ভ্যালু রেখে কাজ করতে পারি। কিন্তু আমরা যদি ভ্যালু এসাইন না করে ঐ ভেরিয়েবল নিয়ে কাজ করার চেষ্টা করি তাহলে প্রােগ্রামে এরর দেখাবে। যেমন-  >>> variable Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'variable' is noi defined

পাইথন ভেরিয়েবল নামকরণের নিয়মাবলি (Naming convension of python variable) ঃ 


কম্পাইলারের সীমাবদ্ধতার কারণে পাইথনে ভেরিয়েবল লেখার সময় বেশ কিছু নিয়ম কানুন মেনে ভেরিয়েবল ডিক্লেয়ার করতে হয়। তাই পাইথনে ভেরিয়েবল নামকরণের ক্ষেত্রে নিম্নবর্ণিত নিয়মসমূহ অবশ্যই মেনে চলতে হবে। যেমন- 
১। ভেরিয়েবলের নামের মধ্যে কোনাে খালি জায়গা বা স্পেস ব্যবহার করা যাবে না। যেমন- Rectangle area, First  number, Summation value ইত্যাদি। 
 
২। ভেরিয়েবলের নাম লেখার ক্ষেত্রে প্রথম অক্ষর অবশ্যই একটি alphabetic letter (uppercase or lowercase) অথবা  underscore (-) হবে। যেমন- Number, Length, Width, _Length লেখা যাবে কিন্তু 1stNumber, @Number, 20Number, %Base লেখা যাবে না। যদিও ভেরিয়েবলের শুরুতে underscore ব্যবহার করা যায়, কিন্তু পাইথনের কনভেনশন হচ্ছে ভেরিয়েবলের নাম সবসময় Lowercase letter দিয়ে শুরু করা।  

৩। প্রথম অক্ষরের পর যে-কোনাে letter, underscore, number ব্যবহার করা যাবে। যেমন- Number1,  Rectangle_Area, Area_of_The_Rectangle। 

৪। ভেরিয়েবলে underscore () ছাড়া অন্য কোনাে বিশেষ চিহ্ন (!, @#$%^&*,<>?..}..]) ব্যবহার করা যাবে।  । যেমন- H#, R#, email@, Age! ইত্যাদি ব্যবহার করা যাবে না।

৫। পাইথন একটি Case sensitive language । তাই এতে Uppercase letter ও lowercase letter এর ভিন্ন ভিন্ন  অর্থ বিদ্যমান। অর্থাৎ Area, area, Area ইত্যাদিকে ভিন্ন ভিন্ন ভেরিয়েবল হিসেবে ডিক্লেয়ার করা যাবে কিন্তু Area,  Area-কে দুটি আলাদা ভেরিয়েবল হিসেবে ডিক্লেয়ার করা যাবে না। 

৬। পাইথনে ভেরিয়েবলর নাম হিসেবে এর কী-ওয়ার্ডসমূহক ব্যবহার করা যাবে না। যেমন- if, else, elif, for, while,  break, continue, except, as, in, is, True, False, yield, None, def, del, class ইত্যাদি। 

৭। ভেরিয়েবলের নাম হিসেবে অর্থবােধক নাম ব্যবহার করাই যুক্তিযুক্ত। অনর্থক নাম পরিহার করাই শ্রেয়। যেমনঃ  আয়তক্ষেত্রের ক্ষেত্রফল নির্ণয় করার জন্য Length, Width, Rectangle_Area ব্যবহার করাই শ্রেয়; A, B,R নয়।

একাধিক ভেরিয়েবলের মান নির্ধারণ (Multiple variable assignment) ঃ  


পাইথন একই লাইনে একাধিক ভেরিয়েবল ডিক্লারেশনের সুবিধা প্রদান করে। এতে একাধিক ভেরিয়েবলের জন্য একটি নির্দিষ্ট মান স্টোর করা যায়। আবার একাধিক ভেরিয়েবলের জন্য যথাক্রমে একাধিক মানও একসাথে স্টোর করা যায়। পাইথনে ভেরিয়েবল ডিক্লারেশনের এই পদ্ধতিকে মাল্টিপল ভেরিয়েবল অ্যাসাইনমেন্ট বলে। যেমন-  
a = b = c = 10 এবং  a, b, c = 10, 20, "Rohan" প্রথমােক্ত উদাহরণে a, b এবং c প্রতিটি ভেরিয়েবলের মান ১০ কিন্তু দ্বিতীয় উদাহরণে a, b এবং c এর মান যথাক্রমে ১০, ২০ এবং Rohan নির্ধারণ করা হয়েছে। 

উদাহরণঃ 
>>> x, y =2, 3  
>>> x
2 
>>>y
3