# ভেরিয়েবল

ভেরিয়েবল হল মেমরি লোকেশন এর নাম। যেখানে আমরা ভেল্যু স্টোর করতে পারি। সময়ের সাথে সাথে ভেরিয়েবল এর মান পরিবর্তন হয়।

### Variables

প্রোগ্রামিং এ ডেটা/ভ্যালু সংরক্ষণের পদ্ধতিই ভ্যারিয়েবল। মনেকরি আমাদের একটি লগইন পেজ আছে যার একটি ফিল্ড name আরেকটি ফিল্ড password । প্রোগ্রামের মাধ্যমে name এবং password ফিল্ডের ভ্যালু সংরক্ষণের জন্য আমাদের দুইটি ভ্যারিয়েবল বানিয়ে তারমধ্যে name এবং password ফিল্ডের ভালুকে ধরে প্রোগ্রাম করতে হয়।

এটি একটি উদাহরণ দিয়ে সহজে বোঝানো যাক:

```python
name = "John"  # এখানে "John" হলো টেক্সট স্ট্রিং যা ভ্যারিয়েবল name তে সংরক্ষণ করা হয়েছে
age = 25  # এখানে 25 হলো একটি সংখ্যা যা ভ্যারিয়েবল age তে সংরক্ষণ করা হয়েছে
is_student = True  # এখানে True হলো বুলিয়ান মান যা ভ্যারিয়েবল is_student তে সংরক্ষণ করা হয়েছে

print(name)  # "John" মান প্রিন্ট করবে
print(age)  # 25 মান প্রিন্ট করবে
print(is_student)  # True মান প্রিন্ট করবে

```

উপরের উদাহরণে ভ্যারিয়েবল name, age, is\_student তিনটি ভ্যারিয়েবল যা সেই মানগুলো ধারণ করে এবং পরবর্তীতে ব্যবহার করা হয়। প্রিন্ট স্টেটমেন্টগুলো প্রতিটি ভ্যারিয়েবলের মান প্রিন্ট করছে।

### Variable Name

ভ্যারিয়েবল ডিক্লারেশন করতে প্রথমে A-Z পর্যন্ত যেকোনো অক্ষর বা '*'আন্ডারস্কোর দ্বারা শুরু করা যাবে কোনো নাম্বার বা অন্য কিনো চিহ্ন বা সিম্বল ভ্যারিয়েবলের নামের শুরুতে দেওয়া যাবে না।নামের ভিতরে শুধু A-Z,* এবং 0-9 এই কয়টি অক্ষর ব্যবহার করা যাবে। ভ্যারিয়েবল এর নামে কোথাও স্পেস দেওয়া বা (-) হাইপেন বা অন্য কোন সাংকেতিক চিহ্ন দেয়া যাবে না দরকার হলে'\_'আন্ডারস্কোর দিতে হবে।

```python
# this is Correct  Diclaretion 

name= 'olee' # correct
L_roll = 20 # correct
code8= 880 # correct

# this is Wrong Diclaretion 

8name = 'olee' #wrong
L-roll = 80    # wrong
code 8 = 880   #wrong 
```

### Creating Variables

```python
name = 'olee' #string type variable 
password = 123456  # Integers Type Variable
```

### Multiple Variable Single Call

```python
a,b,c = 10,20,30
print(b)

```

### Get Variable Datatype

```python
name = 'olee' #string type variable 
password = 123456 # Integers Type Variable
// Get Variable Data Type
print(type(name))
print(type(password))
```

### Variable Type Casting

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

```python
roll = int(10.5) # roll will be 10
name = str(14)   # name will be '14'
price = float(50) # price will be 50.0

print(roll )
print(name)
print(price)

# OutPut Like Below 
# 10
# 14
# 50.0                 

```

### Python Variable Are CaseSensitive

```
#two Variable Are Deferent Because Python Variable Case Sensetive
roll = 10
Roll = 200   
```

### গ্লোবাল / লোকাল ভ্যারিয়েবল :

যখন কোনো ভ্যারিয়েবল ফাংশনের মধ্যে তৈরী করা হয় তখন তাকে লোকাল ভ্যারিয়েবল বলে। কারণ এই ভারিয়াবলকে এই ফাংশন ব্যতীত ফাংশনের বাইরে ব্যবহার করা যায়না। ব্যবহার করলে এই ভারিয়াবলকে খুঁজে পাবে না এরর দেখাবে।

```python
name = 'bd'
b = 10 # global Variable
def hello() :
    a= 'olee' # local variable 
    global name 
    name = 'Bangladesh'
    print(name)
    
b= 30 # modify golbal variable outside function 
print(b)
print(name)
hello()   

#output Will Be 
30
bd
Bangladesh
```

যখন নরমাল পদ্ধতিতে ফাংশনের বাইরে কোনো ভ্যারিয়েবল তৈরী করা হয়তখন তাকে গ্লোবাল ভ্যারিয়েবল বলে। এই ভারিয়াবলকে সব জায়গায় ব্যবহার করা যায়।

গ্লোবাল ভ্যারিয়েবল কে ফাংশনের বাইরে মোডিফাই করা যায়। ফাংশনের ভিতরে মোডিফাই করার জন্য ভ্যারিয়েবলের নামের পূর্বে global কীওয়ার্ড ব্যবহার করে গ্লোবাল ভ্যারিয়েবল কে ডিফাইন করতে হবে। পরের লাইন এ ভ্যারিয়েবল কে ফাংশনের ফিতরে মোডিফাই করতে হয়।
