Tools
Tools: Python for Beginners: Installation, Basics, Logic, Files & Mini Project
2026-02-17
0 views
admin
Python Foundations & Workflow ## Installing Python ## Windows: ## Python Data Types & Variables ## Basic Data Types / মৌলিক ডেটা টাইপ ## Lists & Dictionaries (Important for ML) ## Lists / লিস্ট ## Dictionaries / ডিকশনারি ## Control Flow (if/else, loops) ## If-Else Statements ## For Loops / ফর লুপ ## While Loops / হোয়াইল লুপ ## Functions / ফাংশন ## Defining Functions ## Lambda Functions (Anonymous Functions) ## File Handling (CSV read/write, Pathlib) ## Reading Files / ফাইল পড়া ## Writing Files / ফাইলে লেখা ## Working with CSV Files ## Using Pathlib (Modern approach) ## 8. Exception Handling / এক্সেপশন হ্যান্ডলিং ## Logging Basics (Debugging Setup) ## Mini-Project: CSV Data Cleaner ## Key Takeaways পাইথন ইনস্টল করার পর টার্মিনালে python --version লিখে চেক করুন যে সঠিকভাবে ইনস্টল হয়েছে কিনা। if-else দিয়ে শর্ত চেক করা যায় এবং সেই অনুযায়ী কোড চালানো যায়। লগিং ব্যবহার করে প্রোগ্রামের কি হচ্ছে তা ট্র্যাক করা যায়, যা ডিবাগিংয়ে খুব সাহায্য করে। Templates let you quickly answer FAQs or store snippets for re-use. Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment's permalink. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse COMMAND_BLOCK:
# Download from python.org
# Or use winget
winget install Python.Python.3.11 Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Download from python.org
# Or use winget
winget install Python.Python.3.11 COMMAND_BLOCK:
# Download from python.org
# Or use winget
winget install Python.Python.3.11 COMMAND_BLOCK:
# Integer (পূর্ণসংখ্যা)
age = 25
print(type(age)) # <class 'int'> # Float (দশমিক সংখ্যা)
height = 5.9
print(type(height)) # <class 'float'> # String (স্ট্রিং/টেক্সট)
name = "আহমেদ" # Bengali text supported
print(type(name)) # <class 'str'> # Boolean (সত্য/মিথ্যা)
is_student = True
print(type(is_student)) # <class 'bool'> # None (কিছুই নেই)
result = None
print(type(result)) # <class 'NoneType'> Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Integer (পূর্ণসংখ্যা)
age = 25
print(type(age)) # <class 'int'> # Float (দশমিক সংখ্যা)
height = 5.9
print(type(height)) # <class 'float'> # String (স্ট্রিং/টেক্সট)
name = "আহমেদ" # Bengali text supported
print(type(name)) # <class 'str'> # Boolean (সত্য/মিথ্যা)
is_student = True
print(type(is_student)) # <class 'bool'> # None (কিছুই নেই)
result = None
print(type(result)) # <class 'NoneType'> COMMAND_BLOCK:
# Integer (পূর্ণসংখ্যা)
age = 25
print(type(age)) # <class 'int'> # Float (দশমিক সংখ্যা)
height = 5.9
print(type(height)) # <class 'float'> # String (স্ট্রিং/টেক্সট)
name = "আহমেদ" # Bengali text supported
print(type(name)) # <class 'str'> # Boolean (সত্য/মিথ্যা)
is_student = True
print(type(is_student)) # <class 'bool'> # None (কিছুই নেই)
result = None
print(type(result)) # <class 'NoneType'> COMMAND_BLOCK:
# Creating lists (লিস্ট তৈরি)
numbers = [1, 2, 3, 4, 5]
names = ["রহিম", "করিম", "সালমা"]
mixed = [1, "hello", 3.14, True] # Accessing elements (এলিমেন্ট অ্যাক্সেস)
print(numbers[0]) # 1 (প্রথম এলিমেন্ট)
print(numbers[-1]) # 5 (শেষ এলিমেন্ট) # Slicing (স্লাইসিং)
print(numbers[1:4]) # [2, 3, 4]
print(numbers[:3]) # [1, 2, 3] (প্রথম তিনটি)
print(numbers[2:]) # [3, 4, 5] (তৃতীয় থেকে শেষ পর্যন্ত) # List operations
numbers.append(6) # শেষে যোগ করা
numbers.insert(0, 0) # নির্দিষ্ট স্থানে যোগ করা
numbers.remove(3) # নির্দিষ্ট মান মুছে ফেলা
numbers.pop() # শেষ এলিমেন্ট মুছে ফেলা # List comprehension (খুবই শক্তিশালী!)
squares = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] even_squares = [x**2 for x in range(10) if x % 2 == 0]
# [0, 4, 16, 36, 64] Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Creating lists (লিস্ট তৈরি)
numbers = [1, 2, 3, 4, 5]
names = ["রহিম", "করিম", "সালমা"]
mixed = [1, "hello", 3.14, True] # Accessing elements (এলিমেন্ট অ্যাক্সেস)
print(numbers[0]) # 1 (প্রথম এলিমেন্ট)
print(numbers[-1]) # 5 (শেষ এলিমেন্ট) # Slicing (স্লাইসিং)
print(numbers[1:4]) # [2, 3, 4]
print(numbers[:3]) # [1, 2, 3] (প্রথম তিনটি)
print(numbers[2:]) # [3, 4, 5] (তৃতীয় থেকে শেষ পর্যন্ত) # List operations
numbers.append(6) # শেষে যোগ করা
numbers.insert(0, 0) # নির্দিষ্ট স্থানে যোগ করা
numbers.remove(3) # নির্দিষ্ট মান মুছে ফেলা
numbers.pop() # শেষ এলিমেন্ট মুছে ফেলা # List comprehension (খুবই শক্তিশালী!)
squares = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] even_squares = [x**2 for x in range(10) if x % 2 == 0]
# [0, 4, 16, 36, 64] COMMAND_BLOCK:
# Creating lists (লিস্ট তৈরি)
numbers = [1, 2, 3, 4, 5]
names = ["রহিম", "করিম", "সালমা"]
mixed = [1, "hello", 3.14, True] # Accessing elements (এলিমেন্ট অ্যাক্সেস)
print(numbers[0]) # 1 (প্রথম এলিমেন্ট)
print(numbers[-1]) # 5 (শেষ এলিমেন্ট) # Slicing (স্লাইসিং)
print(numbers[1:4]) # [2, 3, 4]
print(numbers[:3]) # [1, 2, 3] (প্রথম তিনটি)
print(numbers[2:]) # [3, 4, 5] (তৃতীয় থেকে শেষ পর্যন্ত) # List operations
numbers.append(6) # শেষে যোগ করা
numbers.insert(0, 0) # নির্দিষ্ট স্থানে যোগ করা
numbers.remove(3) # নির্দিষ্ট মান মুছে ফেলা
numbers.pop() # শেষ এলিমেন্ট মুছে ফেলা # List comprehension (খুবই শক্তিশালী!)
squares = [x**2 for x in range(10)]
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] even_squares = [x**2 for x in range(10) if x % 2 == 0]
# [0, 4, 16, 36, 64] COMMAND_BLOCK:
# Creating dictionary (ডিকশনারি তৈরি)
student = { "name": "আহমেদ", "age": 22, "cgpa": 3.85, "subjects": ["Math", "Physics", "CS"]
} # Accessing values (মান অ্যাক্সেস)
print(student["name"]) # আহমেদ
print(student.get("age")) # 22 # Adding/Updating (যোগ/আপডেট করা)
student["email"] = "[email protected]"
student["age"] = 23 # Dictionary methods
keys = student.keys() # সব key পাওয়া
values = student.values() # সব value পাওয়া
items = student.items() # (key, value) pairs # Dictionary comprehension
squared_dict = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Creating dictionary (ডিকশনারি তৈরি)
student = { "name": "আহমেদ", "age": 22, "cgpa": 3.85, "subjects": ["Math", "Physics", "CS"]
} # Accessing values (মান অ্যাক্সেস)
print(student["name"]) # আহমেদ
print(student.get("age")) # 22 # Adding/Updating (যোগ/আপডেট করা)
student["email"] = "[email protected]"
student["age"] = 23 # Dictionary methods
keys = student.keys() # সব key পাওয়া
values = student.values() # সব value পাওয়া
items = student.items() # (key, value) pairs # Dictionary comprehension
squared_dict = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} COMMAND_BLOCK:
# Creating dictionary (ডিকশনারি তৈরি)
student = { "name": "আহমেদ", "age": 22, "cgpa": 3.85, "subjects": ["Math", "Physics", "CS"]
} # Accessing values (মান অ্যাক্সেস)
print(student["name"]) # আহমেদ
print(student.get("age")) # 22 # Adding/Updating (যোগ/আপডেট করা)
student["email"] = "[email protected]"
student["age"] = 23 # Dictionary methods
keys = student.keys() # সব key পাওয়া
values = student.values() # সব value পাওয়া
items = student.items() # (key, value) pairs # Dictionary comprehension
squared_dict = {x: x**2 for x in range(5)}
# {0: 0, 1: 1, 2: 4, 3: 9, 4: 16} COMMAND_BLOCK:
# Simple if-else
age = 20 if age >= 18: print("আপনি প্রাপ্তবয়স্ক") # You are adult
else: print("আপনি নাবালক") # You are minor # Multiple conditions
marks = 85 if marks >= 90: grade = "A+"
elif marks >= 80: grade = "A"
elif marks >= 70: grade = "B"
else: grade = "C" print(f"Your grade: {grade}") # Ternary operator (এক লাইনে if-else)
status = "Pass" if marks >= 50 else "Fail" Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Simple if-else
age = 20 if age >= 18: print("আপনি প্রাপ্তবয়স্ক") # You are adult
else: print("আপনি নাবালক") # You are minor # Multiple conditions
marks = 85 if marks >= 90: grade = "A+"
elif marks >= 80: grade = "A"
elif marks >= 70: grade = "B"
else: grade = "C" print(f"Your grade: {grade}") # Ternary operator (এক লাইনে if-else)
status = "Pass" if marks >= 50 else "Fail" COMMAND_BLOCK:
# Simple if-else
age = 20 if age >= 18: print("আপনি প্রাপ্তবয়স্ক") # You are adult
else: print("আপনি নাবালক") # You are minor # Multiple conditions
marks = 85 if marks >= 90: grade = "A+"
elif marks >= 80: grade = "A"
elif marks >= 70: grade = "B"
else: grade = "C" print(f"Your grade: {grade}") # Ternary operator (এক লাইনে if-else)
status = "Pass" if marks >= 50 else "Fail" COMMAND_BLOCK:
# Basic for loop
for i in range(5): print(i) # 0, 1, 2, 3, 4 # Loop through list
fruits = ["আম", "কলা", "জাম"]
for fruit in fruits: print(fruit) # Loop with index and value
for index, fruit in enumerate(fruits): print(f"{index}: {fruit}") # Range with start, stop, step
for i in range(0, 10, 2): # 0, 2, 4, 6, 8 print(i) Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Basic for loop
for i in range(5): print(i) # 0, 1, 2, 3, 4 # Loop through list
fruits = ["আম", "কলা", "জাম"]
for fruit in fruits: print(fruit) # Loop with index and value
for index, fruit in enumerate(fruits): print(f"{index}: {fruit}") # Range with start, stop, step
for i in range(0, 10, 2): # 0, 2, 4, 6, 8 print(i) COMMAND_BLOCK:
# Basic for loop
for i in range(5): print(i) # 0, 1, 2, 3, 4 # Loop through list
fruits = ["আম", "কলা", "জাম"]
for fruit in fruits: print(fruit) # Loop with index and value
for index, fruit in enumerate(fruits): print(f"{index}: {fruit}") # Range with start, stop, step
for i in range(0, 10, 2): # 0, 2, 4, 6, 8 print(i) COMMAND_BLOCK:
# Basic while loop
count = 0
while count < 5: print(count) count += 1 # Break and continue
for i in range(10): if i == 3: continue # Skip 3 if i == 7: break # Stop at 7 print(i) Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Basic while loop
count = 0
while count < 5: print(count) count += 1 # Break and continue
for i in range(10): if i == 3: continue # Skip 3 if i == 7: break # Stop at 7 print(i) COMMAND_BLOCK:
# Basic while loop
count = 0
while count < 5: print(count) count += 1 # Break and continue
for i in range(10): if i == 3: continue # Skip 3 if i == 7: break # Stop at 7 print(i) COMMAND_BLOCK:
# Basic function
def greet(name): """এই ফাংশন একটি নাম নিয়ে শুভেচ্ছা বার্তা দেয়""" return f"Hello, {name}!" message = greet("আহমেদ")
print(message) # Hello, আহমেদ! # Multiple parameters
def add(a, b): """দুটি সংখ্যা যোগ করে""" return a + b result = add(5, 3)
print(result) # 8 # Default arguments
def power(base, exponent=2): """একটি সংখ্যার ঘাত বের করে (ডিফল্ট ঘাত = ২)""" return base ** exponent print(power(3)) # 9 (3^2)
print(power(3, 3)) # 27 (3^3) # *args - variable number of arguments
def sum_all(*numbers): """যেকোনো সংখ্যক সংখ্যা যোগ করে""" total = 0 for num in numbers: total += num return total print(sum_all(1, 2, 3)) # 6
print(sum_all(1, 2, 3, 4, 5)) # 15 # **kwargs - keyword arguments
def student_info(**info): """Student information প্রিন্ট করে""" for key, value in info.items(): print(f"{key}: {value}") student_info(name="রহিম", age=22, cgpa=3.7) Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Basic function
def greet(name): """এই ফাংশন একটি নাম নিয়ে শুভেচ্ছা বার্তা দেয়""" return f"Hello, {name}!" message = greet("আহমেদ")
print(message) # Hello, আহমেদ! # Multiple parameters
def add(a, b): """দুটি সংখ্যা যোগ করে""" return a + b result = add(5, 3)
print(result) # 8 # Default arguments
def power(base, exponent=2): """একটি সংখ্যার ঘাত বের করে (ডিফল্ট ঘাত = ২)""" return base ** exponent print(power(3)) # 9 (3^2)
print(power(3, 3)) # 27 (3^3) # *args - variable number of arguments
def sum_all(*numbers): """যেকোনো সংখ্যক সংখ্যা যোগ করে""" total = 0 for num in numbers: total += num return total print(sum_all(1, 2, 3)) # 6
print(sum_all(1, 2, 3, 4, 5)) # 15 # **kwargs - keyword arguments
def student_info(**info): """Student information প্রিন্ট করে""" for key, value in info.items(): print(f"{key}: {value}") student_info(name="রহিম", age=22, cgpa=3.7) COMMAND_BLOCK:
# Basic function
def greet(name): """এই ফাংশন একটি নাম নিয়ে শুভেচ্ছা বার্তা দেয়""" return f"Hello, {name}!" message = greet("আহমেদ")
print(message) # Hello, আহমেদ! # Multiple parameters
def add(a, b): """দুটি সংখ্যা যোগ করে""" return a + b result = add(5, 3)
print(result) # 8 # Default arguments
def power(base, exponent=2): """একটি সংখ্যার ঘাত বের করে (ডিফল্ট ঘাত = ২)""" return base ** exponent print(power(3)) # 9 (3^2)
print(power(3, 3)) # 27 (3^3) # *args - variable number of arguments
def sum_all(*numbers): """যেকোনো সংখ্যক সংখ্যা যোগ করে""" total = 0 for num in numbers: total += num return total print(sum_all(1, 2, 3)) # 6
print(sum_all(1, 2, 3, 4, 5)) # 15 # **kwargs - keyword arguments
def student_info(**info): """Student information প্রিন্ট করে""" for key, value in info.items(): print(f"{key}: {value}") student_info(name="রহিম", age=22, cgpa=3.7) COMMAND_BLOCK:
# Regular function
def square(x): return x ** 2 # Lambda equivalent (এক লাইনে)
square_lambda = lambda x: x ** 2 print(square(5)) # 25
print(square_lambda(5)) # 25 # Lambda with multiple arguments
add = lambda a, b: a + b
print(add(3, 5)) # 8 # Used with map, filter
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
# [1, 4, 9, 16, 25] even = list(filter(lambda x: x % 2 == 0, numbers))
# [2, 4] Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Regular function
def square(x): return x ** 2 # Lambda equivalent (এক লাইনে)
square_lambda = lambda x: x ** 2 print(square(5)) # 25
print(square_lambda(5)) # 25 # Lambda with multiple arguments
add = lambda a, b: a + b
print(add(3, 5)) # 8 # Used with map, filter
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
# [1, 4, 9, 16, 25] even = list(filter(lambda x: x % 2 == 0, numbers))
# [2, 4] COMMAND_BLOCK:
# Regular function
def square(x): return x ** 2 # Lambda equivalent (এক লাইনে)
square_lambda = lambda x: x ** 2 print(square(5)) # 25
print(square_lambda(5)) # 25 # Lambda with multiple arguments
add = lambda a, b: a + b
print(add(3, 5)) # 8 # Used with map, filter
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
# [1, 4, 9, 16, 25] even = list(filter(lambda x: x % 2 == 0, numbers))
# [2, 4] COMMAND_BLOCK:
# Basic file reading
with open('data.txt', 'r', encoding='utf-8') as file: content = file.read() print(content) # Read line by line
with open('data.txt', 'r', encoding='utf-8') as file: for line in file: print(line.strip()) # strip() removes \n # Read all lines into a list
with open('data.txt', 'r', encoding='utf-8') as file: lines = file.readlines() Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Basic file reading
with open('data.txt', 'r', encoding='utf-8') as file: content = file.read() print(content) # Read line by line
with open('data.txt', 'r', encoding='utf-8') as file: for line in file: print(line.strip()) # strip() removes \n # Read all lines into a list
with open('data.txt', 'r', encoding='utf-8') as file: lines = file.readlines() COMMAND_BLOCK:
# Basic file reading
with open('data.txt', 'r', encoding='utf-8') as file: content = file.read() print(content) # Read line by line
with open('data.txt', 'r', encoding='utf-8') as file: for line in file: print(line.strip()) # strip() removes \n # Read all lines into a list
with open('data.txt', 'r', encoding='utf-8') as file: lines = file.readlines() COMMAND_BLOCK:
# Write mode (overwrites existing file)
with open('output.txt', 'w', encoding='utf-8') as file: file.write("Hello, World!\n") file.write("নমস্কার, পৃথিবী!\n") # Append mode (adds to existing file)
with open('output.txt', 'a', encoding='utf-8') as file: file.write("New line added\n") Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Write mode (overwrites existing file)
with open('output.txt', 'w', encoding='utf-8') as file: file.write("Hello, World!\n") file.write("নমস্কার, পৃথিবী!\n") # Append mode (adds to existing file)
with open('output.txt', 'a', encoding='utf-8') as file: file.write("New line added\n") COMMAND_BLOCK:
# Write mode (overwrites existing file)
with open('output.txt', 'w', encoding='utf-8') as file: file.write("Hello, World!\n") file.write("নমস্কার, পৃথিবী!\n") # Append mode (adds to existing file)
with open('output.txt', 'a', encoding='utf-8') as file: file.write("New line added\n") COMMAND_BLOCK:
import csv # Reading CSV
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.reader(file) # Skip header next(csv_reader) for row in csv_reader: name, age, cgpa = row print(f"{name}: {cgpa}") # Writing CSV
students = [ ["Name", "Age", "CGPA"], ["আহমেদ", 22, 3.85], ["রহিম", 21, 3.70], ["সালমা", 23, 3.92]
] with open('students.csv', 'w', encoding='utf-8', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(students) # Using DictReader/DictWriter (recommended)
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.DictReader(file) for row in csv_reader: print(row['Name'], row['CGPA']) Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
import csv # Reading CSV
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.reader(file) # Skip header next(csv_reader) for row in csv_reader: name, age, cgpa = row print(f"{name}: {cgpa}") # Writing CSV
students = [ ["Name", "Age", "CGPA"], ["আহমেদ", 22, 3.85], ["রহিম", 21, 3.70], ["সালমা", 23, 3.92]
] with open('students.csv', 'w', encoding='utf-8', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(students) # Using DictReader/DictWriter (recommended)
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.DictReader(file) for row in csv_reader: print(row['Name'], row['CGPA']) COMMAND_BLOCK:
import csv # Reading CSV
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.reader(file) # Skip header next(csv_reader) for row in csv_reader: name, age, cgpa = row print(f"{name}: {cgpa}") # Writing CSV
students = [ ["Name", "Age", "CGPA"], ["আহমেদ", 22, 3.85], ["রহিম", 21, 3.70], ["সালমা", 23, 3.92]
] with open('students.csv', 'w', encoding='utf-8', newline='') as file: csv_writer = csv.writer(file) csv_writer.writerows(students) # Using DictReader/DictWriter (recommended)
with open('students.csv', 'r', encoding='utf-8') as file: csv_reader = csv.DictReader(file) for row in csv_reader: print(row['Name'], row['CGPA']) COMMAND_BLOCK:
from pathlib import Path # Create Path object
data_dir = Path('data')
file_path = data_dir / 'students.csv' # Check if exists
if file_path.exists(): print("File exists") # Create directory
data_dir.mkdir(exist_ok=True) # Read file
content = file_path.read_text(encoding='utf-8') # Write file
file_path.write_text("New content", encoding='utf-8') # Get file info
print(file_path.name) # students.csv
print(file_path.stem) # students
print(file_path.suffix) # .csv
print(file_path.parent) # data Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
from pathlib import Path # Create Path object
data_dir = Path('data')
file_path = data_dir / 'students.csv' # Check if exists
if file_path.exists(): print("File exists") # Create directory
data_dir.mkdir(exist_ok=True) # Read file
content = file_path.read_text(encoding='utf-8') # Write file
file_path.write_text("New content", encoding='utf-8') # Get file info
print(file_path.name) # students.csv
print(file_path.stem) # students
print(file_path.suffix) # .csv
print(file_path.parent) # data COMMAND_BLOCK:
from pathlib import Path # Create Path object
data_dir = Path('data')
file_path = data_dir / 'students.csv' # Check if exists
if file_path.exists(): print("File exists") # Create directory
data_dir.mkdir(exist_ok=True) # Read file
content = file_path.read_text(encoding='utf-8') # Write file
file_path.write_text("New content", encoding='utf-8') # Get file info
print(file_path.name) # students.csv
print(file_path.stem) # students
print(file_path.suffix) # .csv
print(file_path.parent) # data COMMAND_BLOCK:
# Basic try-except
try: number = int(input("Enter a number: ")) result = 10 / number print(f"Result: {result}")
except ValueError: print("দয়া করে একটি সংখ্যা লিখুন!")
except ZeroDivisionError: print("শূন্য দিয়ে ভাগ করা যায় না!") # Multiple exceptions
try: file = open('data.txt', 'r') content = file.read() value = int(content)
except (FileNotFoundError, ValueError) as e: print(f"Error occurred: {e}")
finally: file.close() # Always executes # Raising exceptions
def calculate_percentage(marks, total): if total == 0: raise ValueError("Total cannot be zero") return (marks / total) * 100 try: percentage = calculate_percentage(85, 0)
except ValueError as e: print(f"Error: {e}") Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
# Basic try-except
try: number = int(input("Enter a number: ")) result = 10 / number print(f"Result: {result}")
except ValueError: print("দয়া করে একটি সংখ্যা লিখুন!")
except ZeroDivisionError: print("শূন্য দিয়ে ভাগ করা যায় না!") # Multiple exceptions
try: file = open('data.txt', 'r') content = file.read() value = int(content)
except (FileNotFoundError, ValueError) as e: print(f"Error occurred: {e}")
finally: file.close() # Always executes # Raising exceptions
def calculate_percentage(marks, total): if total == 0: raise ValueError("Total cannot be zero") return (marks / total) * 100 try: percentage = calculate_percentage(85, 0)
except ValueError as e: print(f"Error: {e}") COMMAND_BLOCK:
# Basic try-except
try: number = int(input("Enter a number: ")) result = 10 / number print(f"Result: {result}")
except ValueError: print("দয়া করে একটি সংখ্যা লিখুন!")
except ZeroDivisionError: print("শূন্য দিয়ে ভাগ করা যায় না!") # Multiple exceptions
try: file = open('data.txt', 'r') content = file.read() value = int(content)
except (FileNotFoundError, ValueError) as e: print(f"Error occurred: {e}")
finally: file.close() # Always executes # Raising exceptions
def calculate_percentage(marks, total): if total == 0: raise ValueError("Total cannot be zero") return (marks / total) * 100 try: percentage = calculate_percentage(85, 0)
except ValueError as e: print(f"Error: {e}") COMMAND_BLOCK:
import logging # Basic logging
logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.debug("এটি একটি debug message")
logging.info("এটি একটি info message")
logging.warning("এটি একটি warning message")
logging.error("এটি একটি error message")
logging.critical("এটি একটি critical message") # Logging to file
logging.basicConfig( filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.info("Application started") Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
import logging # Basic logging
logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.debug("এটি একটি debug message")
logging.info("এটি একটি info message")
logging.warning("এটি একটি warning message")
logging.error("এটি একটি error message")
logging.critical("এটি একটি critical message") # Logging to file
logging.basicConfig( filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.info("Application started") COMMAND_BLOCK:
import logging # Basic logging
logging.basicConfig( level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.debug("এটি একটি debug message")
logging.info("এটি একটি info message")
logging.warning("এটি একটি warning message")
logging.error("এটি একটি error message")
logging.critical("এটি একটি critical message") # Logging to file
logging.basicConfig( filename='app.log', level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s'
) logging.info("Application started") COMMAND_BLOCK:
import csv
from pathlib import Path def clean_csv(input_file, output_file): """ CSV file থেকে empty rows এবং duplicate rows মুছে ফেলে Args: input_file: Input CSV file path output_file: Output CSV file path """ # Read data with open(input_file, 'r', encoding='utf-8') as file: reader = csv.DictReader(file) rows = list(reader) # Remove empty rows cleaned_rows = [row for row in rows if any(row.values())] # Remove duplicates seen = set() unique_rows = [] for row in cleaned_rows: row_tuple = tuple(row.items()) if row_tuple not in seen: seen.add(row_tuple) unique_rows.append(row) # Write cleaned data if unique_rows: with open(output_file, 'w', encoding='utf-8', newline='') as file: writer = csv.DictWriter(file, fieldnames=unique_rows[0].keys()) writer.writeheader() writer.writerows(unique_rows) print(f"✓ Cleaned {len(rows)} rows → {len(unique_rows)} unique rows") print(f"✓ Saved to {output_file}") # Usage
clean_csv('dirty_data.csv', 'clean_data.csv') Enter fullscreen mode Exit fullscreen mode COMMAND_BLOCK:
import csv
from pathlib import Path def clean_csv(input_file, output_file): """ CSV file থেকে empty rows এবং duplicate rows মুছে ফেলে Args: input_file: Input CSV file path output_file: Output CSV file path """ # Read data with open(input_file, 'r', encoding='utf-8') as file: reader = csv.DictReader(file) rows = list(reader) # Remove empty rows cleaned_rows = [row for row in rows if any(row.values())] # Remove duplicates seen = set() unique_rows = [] for row in cleaned_rows: row_tuple = tuple(row.items()) if row_tuple not in seen: seen.add(row_tuple) unique_rows.append(row) # Write cleaned data if unique_rows: with open(output_file, 'w', encoding='utf-8', newline='') as file: writer = csv.DictWriter(file, fieldnames=unique_rows[0].keys()) writer.writeheader() writer.writerows(unique_rows) print(f"✓ Cleaned {len(rows)} rows → {len(unique_rows)} unique rows") print(f"✓ Saved to {output_file}") # Usage
clean_csv('dirty_data.csv', 'clean_data.csv') COMMAND_BLOCK:
import csv
from pathlib import Path def clean_csv(input_file, output_file): """ CSV file থেকে empty rows এবং duplicate rows মুছে ফেলে Args: input_file: Input CSV file path output_file: Output CSV file path """ # Read data with open(input_file, 'r', encoding='utf-8') as file: reader = csv.DictReader(file) rows = list(reader) # Remove empty rows cleaned_rows = [row for row in rows if any(row.values())] # Remove duplicates seen = set() unique_rows = [] for row in cleaned_rows: row_tuple = tuple(row.items()) if row_tuple not in seen: seen.add(row_tuple) unique_rows.append(row) # Write cleaned data if unique_rows: with open(output_file, 'w', encoding='utf-8', newline='') as file: writer = csv.DictWriter(file, fieldnames=unique_rows[0].keys()) writer.writeheader() writer.writerows(unique_rows) print(f"✓ Cleaned {len(rows)} rows → {len(unique_rows)} unique rows") print(f"✓ Saved to {output_file}") # Usage
clean_csv('dirty_data.csv', 'clean_data.csv') - Integer: যেকোনো পূর্ণ সংখ্যা (১, ২, ১০০, -৫)
- Float: দশমিক সংখ্যা (৩.১৪, ৫.৯)
- String: টেক্সট বা লেখা ("নাম", "Hello")
- Boolean: শুধু দুটি মান থাকতে পারে - True অথবা False - লিস্ট হলো একাধিক ডেটা একসাথে রাখার উপায়
- লিস্টের ইনডেক্স শূন্য (০) থেকে শুরু হয়
- নেগেটিভ ইনডেক্স (-1) দিয়ে শেষ থেকে অ্যাক্সেস করা যায় - ডিকশনারি হলো key-value পেয়ার
- প্রতিটি key এর বিপরীতে একটি value থাকে
- key দিয়ে খুব দ্রুত value খুঁজে পাওয়া যায় - for loop: নির্দিষ্ট সংখ্যকবার বা লিস্টের প্রতিটি আইটেমের জন্য চলে
- while loop: যতক্ষণ শর্ত সত্য ততক্ষণ চলতে থাকে
- break: লুপ থামিয়ে দেয়
- continue: বর্তমান ইটারেশন স্কিপ করে পরেরটিতে যায় - ফাংশন হলো পুনরায় ব্যবহারযোগ্য কোড ব্লক
- def দিয়ে ফাংশন তৈরি করা হয়
- return দিয়ে ফাংশন থেকে মান ফেরত পাঠানো হয়
- *args: যেকোনো সংখ্যক আর্গুমেন্ট নেয়
- **kwargs: যেকোনো সংখ্যক keyword আর্গুমেন্ট নেয় - with open() ব্যবহার করলে ফাইল অটোমেটিক বন্ধ হয়ে যায়
- 'r' = read (পড়া), 'w' = write (লেখা), 'a' = append (যোগ করা)
- encoding='utf-8' বাংলা টেক্সটের জন্য জরুরি
- Pathlib আধুনিক এবং ক্রস-প্ল্যাটফর্ম উপায় - try: যে কোড এরর দিতে পারে তা এখানে রাখি
- except: এরর হলে এই কোড চলবে
- finally: এরর হোক বা না হোক এই কোড চলবে
- raise: নিজে এরর তৈরি করা - ✓ Python এর মৌলিক syntax এবং data types
- ✓ List, Dictionary ব্যবহার করে data organize করা
- ✓ Control flow দিয়ে logic তৈরি করা
- ✓ Function লিখে reusable code তৈরি করা
- ✓ File handling দিয়ে data read/write করা
- ✓ Exception handling দিয়ে error handle করা
how-totutorialguidedev.toaimlpython