# স্ট্রিং (Strings)

## Strings

স্ট্রিং বলতে বুঝি যখন অনেকগুলো লেটার বা অক্ষর কে সিঙ্গেল কোটেশন '' বা ডাবল কোটেশন "" অথবা ট্রিপল কোটেশন ''' ''' এর রাখা হয় তখন সেটা একটা স্ট্রিং।

#### Inside Quotes

```python
print('hello')            # এটা সিঙ্গেল কোটেশনের মধ্যে একটা স্ট্রিং  
print("I Love Python")    #  এটা ডাবল কোটেশনের মধ্যে একটা স্ট্রিং  
print('''Hello World''')  #  এটা ট্রিপল সিঙ্গেল কোটেশনের মধ্যে একটা স্ট্রিং  
print(""" Hello""")       #  এটা ট্রিপল ডাবল কোটেশনের মধ্যে একটা স্ট্রিং 
```

**Quotes Inside Quotes**

মনে করি আমাদের একটি স্ট্রিং আছে যার মধ্যে একটি শব্দ আছে doesn't(যার মধ্যে একটি সিঙ্গেল কোটেশন আছে অনেক সময় ডাবল কোটেশন ও থাকতে পারে ) .আমাদের স্ট্রিং এর শব্দটি যদি সিঙ্গেল কোটেশনে থাকে যেমন এখানে doesn't. তাহলে আমরা পুরো স্ট্রিংটি একটি ডাবল কোটেশনের মধ্যে রাখবো। আর যদি আমাদের স্ট্রিং এর শব্দটি যদি ডাবল কোটেশনে থাকে তাহলে সম্পূর্ণ স্ট্রিংটি সিঙ্গেল কোটেশনে রাখবো। আমরা যদি এই অনেক সময় স্ট্রিং এর মধ্যে সিঙ্গেল কোটেশন অথবা ডাবল কোটেশন থাকে। তাহলে কিভাবে স্ট্রিংটি লিখবো

```python
print("We Don't Want War")     # স্ট্রিং এর মধ্যে সিঙ্গেল কোটেশন (') থাকলে স্ট্রিংকে ডাবল কোটেশনের মধ্যে রাখবো 
print('this is "-" a simbol')  # স্ট্রিং এর মধ্যে ডাবল কোটেশন (') থাকলে স্ট্রিংকে সিঙ্গেল কোটেশনের মধ্যে রাখবো 
```

**Escape quotes**

অনেক সময় একটা স্ট্রিং এর মধ্যে একাধিক সিঙ্গেল কোটেশন বা ডাবল কোটেশন যুক্ত শব্দ থাকতে পারে তখন ওই কোটেশন যাতে প্রোগ্রামে এরর সৃষ্টি না করতে পারে তখন ওই শব্দের কোটেশনের পূর্বে একটা ব্যাক স্ল্যাশ () যুক্ত করে দিলে প্রোগ্রামে আর এরর আসবে না।

```python

print('it\'s a simple word')                # সিঙ্গেল কোটেশনের মধ্যে সিঙ্গেল কোটেশন যুক্ত স্ট্রিং  escape পদ্ধতি  
print ("your simbol \"- is a minus simbol") # ডাবল কোটেশনের মধ্যে ডাবল কোটেশন যুক্ত স্ট্রিং escape পদ্ধতি  

```

**Multiline String**

যদি আমরা স্ট্রিংকে সিঙ্গেল কোটেশন বা ডাবল কোটেশনের মধ্যে রেখে মাল্টি লাইন স্ট্রিং বানাই তখন পাইথন আমাদের এরর শো করবে। যদি মাল্টি লাইন স্ট্রিং বানাতেই হয় তাহলে স্ট্রিংকে থ্রী সিঙ্গেল কোটেশন অথবা থ্রী ডাবল কোটেশন এ রাখতে হবে।

```python
#সিঙ্গেল কোটেশনে মাল্টি লাইন স্ট্রিং
a = '''Hi I Am Multi Line String 
In Single Quotes . '''  
#ডাবল কোটেশনে মাল্টি লাইন স্ট্রিং 
b = """"Hi I Am Multi Line String 
In Double Quotes ."""
```

**Variable Inside String**

অনেক সময় স্ট্রিং এর মধ্যে ভ্যারিয়েবল এর ভ্যালু প্রিন্ট এর দরকার হয় তখন স্ট্রিং এর স্টার্ট কোটেশনের পূর্বে f যুক্ত করে স্ট্রিং এর মধ্যে {ভ্যারিয়েবল} রাখতে হবে।

```python
grade = 'A+'
print(f'Hi I Am Olee my cgpa is {grade}') # print স্টেটমেন্ট এ স্ট্রিং এর মধ্যে ভ্যারিয়েবল

a = 10
c= f"hello {a}" # ভ্যারিয়েবল এ স্ট্রিং এর মধ্যে ভ্যারিয়েবল 
```

format() ফাংশন ব্যবহার

অনেক সময় স্ট্রিং এর মধ্যে ভ্যারিয়েবল এর ভ্যালু প্রিন্ট এর দরকার হয় তখন স্ট্রিং এর মধ্যে {ভ্যারিয়েবল} রাখতে হবে। এবং format() ফাংশন ব্যবহার করতে হয়।

```python
a = 20
b= 30
c= 10
print('amar {} sonar{} bangla{}'.format(a,b,c)) 
```

**Concatenating String**

বিভিন্ন পদ্ধতিতে (প্রায় সাতটি ) স্ট্রিং এর সাথে স্ট্রিং বা ভ্যারিয়েবল Concatenating বা যোগ করা যায় তার মধ্যে সহজ হলো + চিহ্ন বেবহার করে স্ট্রিং এর সাথে স্ট্রিং বা স্ট্রিং এর সাথে ভ্যারিয়েবল যোগ করে প্রোগ্রাম করা।

```python

name = 'Olee Ahmmed'
country = "Bangladesh"
print('Your name Is '+name+'your Region Is '+ country) # + অপারেটর ব্যবহার করে স্ট্রিং এর সাথে ভ্যারিয়েবল যোগ করা 
```

**Slicing স্ট্রিং Access Specific String Text**

মনে করি আমার কাছে একটি name নামে ভ্যারিয়েবল স্ট্রিং আছে যার ভ্যালু 'I Love You ' এখন এই স্ট্রিং থেকে নির্দিষ্ট একটি অক্ষর লাগবে যেমন (v) যেটার ইনডেক্স নাম্বার ৪ তাহলে আমাদের name\[ইনডেক্স নাম্বার ]এভাবে এক্সেস করতে হবে।

```python
a = 'I Love You'
print(a[4]) # স্ট্রিং থেকে নির্দিষ্ট ক্যারেকটার বা অক্ষর এক্সেস নেয়া  
#আউটপুট আসবে v
```

আবার অনেক সময় মনে হবে love এই শব্দটা শুধু দরকার তখন স্ট্রিংকে স্লাইস বা কেটে নিতে হবে।

```python

a = 'I Love You'
print(a[2:6]) # স্ট্রিং থেকে নির্দিষ্ট শব্দ স্লাইস বা কেটে নেওয়া 
#আউটপুট আসবে Love 

print(a[:6]) # যখন আমরা এভাবে লিখবো তখন প্রথম থেকে ৬ পর্যন্ত ক্যারেক্টার ধরবে যার কারণে প্রথম ৬ ক্যারেক্টার হিসাবে I Love প্রিন্ট করবে। 

print(a[1:]) # যখন আমরা এভাবে লিখবো তখন এক অক্ষর পর থেকে শেষ পর্যন্তক্যারেক্টার ধরবে যার কারণে প্রথম 
এক অক্ষর পর থেকে শেষ পর্যন্ত অক্ষর প্রিন্ট করবে   Love You 
```

**String Uppercase,Lowercase**

প্রয়োজনের তাগিদে স্ট্রিংকে অনেক সময় সব গুলো বড় হাতের অক্ষর অথবা সব গুলো ছোট হাতের অক্ষর শো করানো লাগতে পারে তখন স্ট্রিং ক্লাসের upper() এবং lower() মেথড ব্যবহার করতে হয়।

```python
a = 'i loVe you' #normal String
print(a.upper()) # After Upper Output Will Be I LOVE YOU

b= "I hate You" #normal String
print(b.lower()) # After Upper Output Will Be i hate you
```

**Remove White Space String Startpoint:End Point**

স্ট্রিং এর শুরুতে এবং শেষে স্পেস থাকলে তা রিমুভ করতে ব্যবহার হয়

```
c= '   I kill  You    ' 
print(c.strip()) # Output Will Be {I kill  You}
```

**Getting the length of a string**

len() ফাংশন ব্যবহার করে স্ট্রিং এর মধ্যে কয়টি অক্ষর আছে তা জানতে পারি।

```python
a = 'I Love You'
print(len(a))         # len() ফাংশন ব্যবহার করে স্ট্রিং এর মধ্যে কয়টি অক্ষর আছে তা জানা
print(len('hello'))  
```

**Replace String Text**

```python
a = 'I Love You'
print(a.replace('Love', 'Hate'))  #Out Put I Hate You    
```

**split স্ট্রিং**

মনেকরি আমাদের একটি রচনা আছে যার প্রত্যেক লাইন। ফুলস্টপ (.) বা অন্য কোন চিহ্ন শেষ হয়েছে এখন আমরা প্রত্যেক লাইন কে ইনডেক্স আকারে ধরতে চাচ্ছি তাহলে স্ট্রিং এর প্রত্যেকটি ফুলস্টপ বা বিশেষ চিহ্ন যুক্ত লাইন কে স্প্লিট করে ধরতে হবে।

```python

newspaper = 'A newspaper is a paper that carries news and opinions to us from home and abroad. We cannot imagine modern life without newspapers. In the morning, we eagerly wait for the newspaper. It is part and parcel of our day-to-day life.'

print(newspaper.split('.'))  # এটা করার ফলে স্ট্রিংকে লিস্ট আকারে স্প্লিট করবে যার দ্বারা list er ফাংশন ব্যবহার করে আমরা এই লিস্ট নিয়ে কাজ করতে পারবো 

#output Wil be Below
['A newspaper is a paper that carries news and opinions to us from home and abroad', ' We cannot imagine modern life without newspapers', ' In the morning, we eagerly wait for the newspaper', ' It is part and parcel of our day-to-day life', '']

#শুধুমাত্র প্রথম লাইন বা নির্দিষ্ট লাইন প্রিন্ট করতে এভাবে লাইন এর নাম্বার বা লিস্ট এর ইনডেক্স নাম্বার লিখবো। 
print(a[0])
#output Will Be
A newspaper is a paper that carries news and opinions to us from home and abroay
```
