Python Learning
5.84K subscribers
546 photos
2 videos
85 files
120 links
Python learning resources

Beginner to advanced Python guides, cheatsheets, books and projects.

For data science, backend and automation.
Join πŸ‘‰ https://rebrand.ly/bigdatachannels

DMCA: @disclosure_bds
Contact: @mldatascientist
Download Telegram
🐍 Python Dictionaries (Key-Value Pairs) πŸ”‘

Dictionaries are unordered collections of data that store items in key-value pairs. They are incredibly powerful for organizing and quickly accessing related information.

πŸ‘‰ Ideal for representing real-world objects with unique identifiers (keys).

πŸ”Ή 1. What is a Dictionary?

A mutable, unordered collection where each item has a unique key and an associated value. Defined by curly braces {}.

Example:
person = {"name": "Alice", "age": 30, "city": "New York"}
print(person)

Output: {'name': 'Alice', 'age': 30, 'city': 'New York'}

πŸ”Ή 2. Accessing Dictionary Items

Access values using their associated key inside square brackets [] or with the .get() method.

Example:
student = {"id": 101, "name": "Bob", "grade": "A"}
print(student["name"])
print(student.get("grade"))

Output:
Bob
A

πŸ”Ή 3. Adding and Modifying Items

To add a new item, assign a value to a new key. To modify, assign a new value to an existing key.

Example:
car = {"brand": "Ford", "model": "Mustang"}
car["year"] = 2020 # Add new item
car["model"] = "Explorer" # Modify existing item
print(car)

Output: {'brand': 'Ford', 'model': 'Explorer', 'year': 2020}

πŸ”Ή 4. Removing Items

β€’ del dict[key]: Removes the item with the specified key.
β€’ .pop(key): Removes (and returns) the item with the specified key.
β€’ .clear(): Empties the entire dictionary.

Example:
settings = {"theme": "dark", "sound": "on", "notifications": "off"}
del settings["sound"] # Remove by key
print(settings)
settings.pop("theme") # Also removes by key
print(settings)

Output:
{'theme': 'dark', 'notifications': 'off'}
{'notifications': 'off'}

πŸ”Ή 5. Looping Through a Dictionary

You can loop through keys, values, or both (items).

Example:
for k, v in person.items(): # Loops through key-value pairs
print(f"{k}: {v}")

Output:
name: Alice
age: 30
city: New York

🎯 Today's Goal(What you should do)

βœ”οΈ Understand how dictionaries store data in key-value pairs
βœ”οΈ Add, access, modify, and remove dictionary items
βœ”οΈ Iterate over keys, values, or items
❀5
🐍 Python Strings (Text Manipulation) πŸ”€

Strings are sequences of characters, used for handling text data. They are immutable, meaning once created, they cannot be changed directly. Python provides many built-in methods for working with strings.

πŸ‘‰ Essential for almost any program that interacts with text, from usernames to file paths.

πŸ”Ή 1. What is a String?

A string is a sequence of characters, enclosed in single quotes '', double quotes "", or triple quotes """ """ for multi-line strings.

Example:
name = "Pythonista"
message = 'Hello, world!'
multiline = """This is
a multi-line
string."""
print(name)

Output: Pythonista

πŸ”Ή 2. Accessing Characters (Indexing & Slicing)

β€’ Indexing: Get a single character using its position (index starts at 0).
β€’ Slicing: Get a sub-sequence of characters (a "slice") using [start:end]. The end index is exclusive.

Example:
word = "developer"
print(word[0]) # First character
print(word[3:7]) # Characters from index 3 up to (but not including) 7
print(word[-1]) # Last character

Output:
d
elop
r

πŸ”Ή 3. String Concatenation & Length

β€’ Concatenation: Joining strings using the + operator.
β€’ len() function: Returns the number of characters in a string.

Example:
first = "Hello"
last = "World"
full_message = first + " " + last + "!"
print(full_message)
print(len(full_message))

Output:
Hello World!
12

πŸ”Ή 4. Common String Methods

β€’ .upper() / .lower(): Convert to uppercase/lowercase.
β€’ .strip(): Removes leading/trailing whitespace.
β€’ .replace(old, new): Replaces occurrences of a substring.
β€’ .split(delimiter): Splits the string into a list of substrings.

Example:
text = "   Hello Python!   "
print(text.strip())
print("apple,banana,cherry".split(','))
print("Python".replace('o', '0'))

Output:
Hello Python!
['apple', 'banana', 'cherry']
Pyth0n

πŸ”Ή 5. F-strings (Formatted String Literals)

A powerful and easy way to embed expressions inside string literals. Prefix the string with f or F.

Example:
item = "book"
price = 19.99
print(f"The {item} costs ${price:.2f}.") # .2f for 2 decimal places

Output: The book costs $19.99.

🎯 Today's Goal(What you should do)

βœ”οΈ Understand string immutability
βœ”οΈ Access characters and slice strings
βœ”οΈ Use common string methods for manipulation
βœ”οΈ Format strings with f-strings
❀7
60 Python Project Ideas (Beginner + Intermediate + Advanced)
❀3πŸ‘1
🐍 Python Classes & Objects (OOP Basics) πŸ—

Object-Oriented Programming (OOP) is a powerful paradigm where you design your applications using classes and objects. Classes serve as blueprints, and objects are instances of those blueprints.

πŸ‘‰ Essential for building structured, reusable, and scalable code in larger projects.

πŸ”Ή 1. What is OOP?

OOP organizes code around objects rather than just functions and data. It focuses on concepts like encapsulation, inheritance, and polymorphism to make complex systems easier to manage.

πŸ”Ή 2. Class vs. Object

β€’ Class: A blueprint or a template for creating objects. It defines the properties (attributes) and behaviors (methods) that all objects of that type will have.
β€’ Object: An instance of a class. It's a real-world entity created from the class blueprint.

Example: Class = Car, Object = "My blue Honda Civic"

πŸ”Ή 3. Defining a Class

We use the class keyword to define a new class. Class names typically start with an uppercase letter.

Syntax:
class ClassName:
# attributes (variables)
# methods (functions)

Example:
class Dog:
species = "Canis familiaris" # Class attribute

def __init__(self, name, age): # Constructor method
self.name = name # Instance attribute
self.age = age # Instance attribute

πŸ”Ή 4. Creating an Object (Instantiating a Class)

To create an object from a class, you call the class name as if it were a function. This process is called instantiation.

Example:
my_dog = Dog("Buddy", 3) # Creating an object 'my_dog'
your_dog = Dog("Lucy", 5) # Creating another object 'your_dog'

πŸ”Ή 5. Object Attributes & Methods

β€’ Attributes: Variables that belong to an object (e.g., name, age). Accessed using dot notation: object.attribute.
β€’ Methods: Functions that belong to an object (e.g., bark()). Defined inside the class and always take self as their first parameter.

Example:
class Dog:
def __init__(self, name):
self.name = name

def bark(self): # A method
print(f"{self.name} says Woof!")

my_dog = Dog("Rex")
print(my_dog.name) # Access attribute
my_dog.bark() # Call method

Output:
Rex
Rex says Woof!

🎯 Today's Goal(What you should do)

βœ”οΈ Understand the concept of classes as blueprints and objects as instances
βœ”οΈ Define a simple class with attributes and methods
βœ”οΈ Create objects from a class
❀4
πŸ“š The Algorithms: Python

This is the largest open-source collection of algorithms implemented exclusively in Python. It provides clean, well-documented, educational implementations of every major algorithm, from sorting to machine learning, actively maintained by a global community of 1,200+ contributors. No prerequisites required.

Key highlights:

🐍 Python-only focus - perfect for Python learners and developers
πŸ“ˆ 219k stars, 50k forks - trusted by millions worldwide
🧠 Covers 50+ algorithmic domains: backtracking, dynamic programming, graphs, machine learning, neural networks, computer vision, cryptography, and more
πŸ”„ Actively updated - last commit March 28, 2026
πŸŽ“ Educational purpose - implementations are clear and intended for learning, not just production

πŸ”— Link

@python_bds
❀4πŸ‘2
🐍 Python Modules & Packages (Code Organization) πŸ“‚

Modules and packages help organize your Python code into reusable files and directories. They make your projects manageable, prevent name conflicts, and allow you to share code.

πŸ”Ή 1. What are Modules?

A module is simply a Python file (.py extension) containing Python code (functions, classes, variables).

Example:
If you have my_math.py:
# my_math.py
def add(a, b):
return a + b


πŸ”Ή 2. Importing Modules

You use the import statement to bring functionality from one module into another.

Syntax:
import module_name
from module_name import specific_item
from module_name import * # Avoid this in large projects
import module_name as alias
Example:python
import my_math
print(my_math.add(5, 3)) # Access function using module_name.function

from my_math import add
print(add(10, 2)) # Access function directly

import math as m # Using an alias for built-in 'math' module
print(m.sqrt(16))

Output:
8
12
4.0

πŸ”Ή 3. What are Packages?

A package is a way to organize related modules into a directory hierarchy. A directory becomes a Python package if it contains an __init__.py file (even if empty).

Example:
my_project/
β”œβ”€β”€ main.py
└── my_package/
β”œβ”€β”€ __init__.py
β”œβ”€β”€ graphics.py
└── sound.py


πŸ”Ή 4. Importing from Packages

You import modules or specific items from modules within a package using dot notation.

Example (assuming my_package above):
# In main.py
from my_package import graphics
# Now you can use functions/classes from graphics.py like: graphics.draw_circle()

from my_package.sound import play_effect
# Now you can use play_effect() directly


πŸ”Ή 5. Benefits of Modules & Packages

β€’ Reusability: Write code once, use everywhere.
β€’ Organization: Keeps related code together.
β€’ Readability: Easier to understand structured code.
β€’ Namespace management: Prevents variable/function name clashes.

🎯 Today's Goal (What you should do)

βœ”οΈ Understand what modules and packages are
βœ”οΈ Learn how to import functionality
βœ”οΈ Appreciate the benefits of code organization
❀4
Python Dictionaries
❀3πŸ”₯3
🐍 Python File I/O (Reading & Writing Files) πŸ“

File Input/Output (I/O) allows your Python programs to interact with external files, reading data from them or writing data to them. This is crucial for persistence, logging, and data processing.

πŸ”Ή 1. Opening Files (open())

The open() function is used to open a file. It returns a file object.

Syntax:
file_object = open("filename.txt", "mode")

Common modes:
β€’ "r": Read (default) - file must exist.
β€’ "w": Write - creates a new file or overwrites an existing one.
β€’ "a": Append - creates a new file or adds to the end of an existing one.
β€’ "x": Exclusive creation - creates a new file, fails if it exists.

πŸ”Ή 2. Reading from Files

Once opened in read mode, you can read content:
β€’ .read(): Reads the entire file content as a single string.
β€’ .readline(): Reads one line at a time.
β€’ .readlines(): Reads all lines into a list of strings.

Example:
# Assuming 'data.txt' contains "Line 1\nLine 2\n"
file = open("data.txt", "r")
content = file.read()
print(content)
file.close() # Always close the file!

Output:
Line 1
Line 2

πŸ”Ή 3. Writing to Files

Once opened in write ("w") or append ("a") mode, you can write content:
β€’ .write(string): Writes a string to the file. Remember to add \n for new lines.

Example:
file = open("output.txt", "w")
file.write("Hello from Python!\n")
file.write("This is a new line.")
file.close()

(Creates/overwrites output.txt with the text.)

πŸ”Ή 4. The with Statement (Best Practice!)

The with statement ensures files are automatically closed even if errors occur. This is the recommended way.

Syntax:
with open("filename.txt", "mode") as file_object:
# perform file operations here
# File is automatically closed after this block
Example:python
with open("names.txt", "w") as f:
f.write("Alice\nBob\n")

with open("names.txt", "r") as f:
for line in f:
print(line.strip()) # .strip() removes newline characters

Output:
Alice
Bob

πŸ”Ή 5. File Modes (Binary vs. Text)

β€’ Text mode (default): "r", "w", "a" - handles text encoding/decoding.
β€’ Binary mode: "rb", "wb", "ab" - handles raw bytes, useful for images, executables, etc.

Example (Binary Write):
with open("data.bin", "wb") as f:
f.write(b'\x01\x02\x03') # Writing bytes


🎯 Today's Goal

βœ”οΈ Understand how to open files in different modes
βœ”οΈ Read and write data to files
βœ”οΈ Master the with statement for safe file handling
❀4πŸ‘1
Forwarded from Programming Quiz Channel
Which Python concept allows efficient iteration over large datasets?
Anonymous Quiz
18%
List
26%
Tuple
34%
Dictionary
21%
Generator
How to Setup Python the Right Way
❀4
🐍 Python Lambda Functions (Anonymous Functions) πŸ‘»

Lambda functions are small, anonymous (unnamed) functions defined with the lambda keyword. They can take any number of arguments but can only have one expression.

πŸ”Ή 1. What is a Lambda Function?

A compact way to write simple functions without def. They are essentially a shortcut for defining simple, inline functions.

Syntax:
lambda arguments: expression
Example:python
add_ten = lambda x: x + 10
print(add_ten(5))

Output: 15

πŸ”Ή 2. Why Use Lambda?

β€’ Conciseness: Shorter syntax for simple operations.
β€’ Anonymity: No need to name a function that will only be used once.
β€’ Readability: Can make code cleaner when used appropriately in specific contexts.

πŸ”Ή 3. Lambda with Multiple Arguments

Lambdas can take multiple arguments, just like regular functions.

Example:
multiply = lambda a, b: a Γ— b
print(multiply(4, 7))

Output: 28

πŸ”Ή 4. Common Use Case 1: filter()

The filter() function constructs an iterator from elements of an iterable for which a function returns True. Lambdas are often used as this function.

Example:
numbers = [1, 2, 3, 4, 5, 6]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)

Output: [2, 4, 6]

πŸ”Ή 5. Common Use Case 2: map()

The map() function applies a given function to each item of an iterable and returns an iterator of the results.

Example:
numbers = [1, 2, 3]
squared_numbers = list(map(lambda x: x Γ— x, numbers))
print(squared_numbers)

Output: [1, 4, 9]

πŸ”Ή 6. Common Use Case 3: sorted() (Custom Sort Key)

Lambdas are frequently used with sorted() as the key argument to define custom sorting logic.

Example:
students = [('Alice', 25), ('Bob', 20), ('Charlie', 30)]
# Sort by age (the second element of each tuple)
sorted_students = sorted(students, key=lambda student: student[1])
print(sorted_students)

Output: [('Bob', 20), ('Alice', 25), ('Charlie', 30)]

🎯 Today's Goal

βœ”οΈ Understand what lambda functions are
βœ”οΈ Write short, single-expression functions
βœ”οΈ Use lambdas effectively with filter(), map(), and sorted()
❀4
Python Web Scraping
❀3πŸ‘1
πŸ₯Š Flask vs. Django

1. Django: The "Batteries Included" Giant πŸ”‹
β€’ Philosophy: Everything you need is built-in: ORM (database), admin panel, auth, templating.
β€’ Structure: Opinionated (MTV architecture). Dictates how your project is organized.
β€’ Best For: Large, database-heavy apps (CMS, e-commerce), rapid development with lots of features.
β€’ Vibe: "We've thought of everything, just use our system."


2. Flask: The "Microframework" Chameleon 🦎
β€’ Philosophy: Minimal core (routing, request handling). You add libraries as needed.
β€’ Structure: Flexible, unopinionated. Your project structure is up to you.
β€’ Best For: APIs, microservices, smaller apps, projects needing full control over components.
β€’ Vibe: "Here are the basics, build your perfect app with the tools you choose."
❀3πŸ‘1
Python Data Visualization Study Guide
❀5
🐍 Python List Comprehensions (Concise Lists) ✨

List comprehensions provide a concise and elegant way to create lists. They allow you to build new lists by applying an expression to each item in an existing iterable, optionally with a condition.

πŸ”Ή 1. What is a List Comprehension?

A single line of code to create a new list based on an existing sequence.

Syntax:
new_list = [expression for item in iterable if condition]

The if condition part is optional.

πŸ”Ή 2. Basic List Comprehension

Creating a new list by transforming each item from an existing list or range.

Example (Squares):
numbers = [1, 2, 3, 4, 5]
squares = [num Γ— num for num in numbers]
print(squares)

Output: [1, 4, 9, 16, 25]

Example (Uppercase names):
names = ["alice", "bob", "charlie"]
upper_names = [name.upper() for name in names]
print(upper_names)

Output: ['ALICE', 'BOB', 'CHARLIE']

πŸ”Ή 3. List Comprehension with Condition (if)

You can include an if clause to filter items, only including those that satisfy the condition.

Example (Even numbers):
all_numbers = range(10) # 0 to 9
even_numbers = [num for num in all_numbers if num % 2 == 0]
print(even_numbers)

Output: [0, 2, 4, 6, 8]

Example (Words starting with 'a'):
words = ["apple", "banana", "apricot", "cherry"]
a_words = [word for word in words if word.startswith('a')]
print(a_words)

Output: ['apple', 'apricot']

πŸ”Ή 4. List Comprehension with if-else (Conditional Expression)

You can use an if-else expression within the expression part to choose a value based on a condition.

Syntax:
new_list = [expression_if_true if condition else expression_if_false for item in iterable]
Example:python
nums = [1, 2, 3, 4]
status = ["Even" if n % 2 == 0 else "Odd" for n in nums]
print(status)

Output: ['Odd', 'Even', 'Odd', 'Even']

🎯 Today's Goal

βœ”οΈ Understand the structure of list comprehensions
βœ”οΈ Create new lists from existing iterables
βœ”οΈ Filter items using if conditions
βœ”οΈ Use if-else for conditional value assignment
❀3πŸ‘1πŸ‘1
Why Your Python Code Keeps Breaking: Learn Variables and Data Types
❀4πŸ‘2
🐍 Top 5 Unique Facts About Python

Python looks simple… 
but internally it’s full of surprising behavior πŸ‘‡

1️⃣ Variables Are Just References πŸ”—

Python variables don’t store values. 
They point to objects in memory.

a = [1, 2]
b = a

b.append(3)
print(a)

Output: [1, 2, 3]

πŸ‘‰ Both changed because they point to the SAME object.

2️⃣ Everything in Python is an Object πŸ“¦

Even integers, functions, and classes.

x = 10
print(type(x))

Output: <class 'int'>

πŸ‘‰ Numbers, strings, functions… all are objects.

3️⃣ Functions Are First-Class Citizens ⚑

Functions can be passed, returned, and stored.

def greet():
    return "Hello"

func = greet
print(func())

Output: Hello

πŸ‘‰ Functions behave like normal variables.

4️⃣ Small Integers Are Cached 🧠

Python reuses small integers.

a = 256
b = 256

print(a is b)

Output: True

πŸ‘‰ Same object reused internally.

5️⃣ Indentation Defines Structure πŸ“

No curly braces needed.

if True:
    print("Hello")

πŸ‘‰ Indentation = code structure 
πŸ‘‰ Clean but error-prone 
❀5