TGViewer
Channel Public Channel
Learn Python Coding

Learn Python Coding

@pythonre

Learn Python through simple, practical examples and real coding ideas. Clear explanations, useful snippets, and hands-on learning for anyone starting or improving their programming skills.

Admin: @HusseinSheikho || @Hussein_Sheikho
Subscribers
40.8K
Photos
709
Videos
37
Links
517

Showing posts older than #9036 · Back to latest

Older Posts 16 shown
Post #9035 1.24K
✨ Quiz: How to Create a Django Project ✨

📖 Check your Django setup skills. Install safely and pin requirements, create a project and an app. Start building your first site.

🏷️ #basics #best-practices #django #web-dev
  • ❤ 2
Post #9033 1.1K
✨ Boolean flag | Python Glossary ✨

📖 A variable or function parameter that you set to either True or False.

🏷️ #Python
  • ❤ 1
Post #9027 1.27K
Accelerating the Sieve of Eratosthenes

1. Quickly recall the algorithm

Classic implementation:

def eratosthenes(n):
    is_prime = [True] * (n + 1)
    is_prime[0] = is_prime[1] = False

    for i in range(2, int(n ** 0.5) + 1):
        if is_prime[i]:
            for j in range(i * i, n + 1, i):
                is_prime[j] = False

    return is_prime


Time — O(N log log N). We're not interested in the asymptotics, but in how much we can speed up the implementation itself.

2. Optimization #1 — don't bother with even numbers

The idea is simple:

* all even numbers except 2 are composite
* if we only work with odd numbers, we reduce the array size and the number of iterations by about half

Implementation:

def eratosthenes_odd(n):
    if n < 2:
        return []

    size = (n + 1) // 2
    is_prime = [True] * size
    is_prime[0] = False

    limit = int(n ** 0.5) // 2
    for i in range(1, limit + 1):
        if is_prime[i]:
            p = 2 * i + 1
            start = (p * p) // 2
            for j in range(start, size, p):
                is_prime[j] = False

    return is_prime


3. Optimization #2 — use bytearray instead of list[bool]

Thought:

* bool in Python is an object
* bytearray is a tightly packed buffer
* less overhead and better fits into the CPU cache

Example:

def eratosthenes_bytearray(n):
    is_prime = bytearray(b"\x01") * (n + 1)
    is_prime[0:2] = b"\x00\x00"

    for i in range(2, int(n ** 0.5) + 1):
        if is_prime[i]:
            for j in range(i * i, n + 1, i):
                is_prime[j] = 0

    return is_prime


4. Optimization #3 — a hybrid of the two approaches

def eratosthenes_fast(n):
    if n < 2:
        return []

    size = (n + 1) // 2
    is_prime = bytearray(b"\x01") * size
    is_prime[0] = 0

    limit = int(n ** 0.5) // 2
    for i in range(1, limit + 1):
        if is_prime[i]:
            p = 2 * i + 1
            start = (p * p) // 2
            is_prime[start::p] = b"\x00" * (((size - start - 1) // p) + 1)

    return is_prime


5. Time comparison

Test with n = 10_000_000:

>>> eratosthenes.py
real  0.634s

>>> eratosthenes_odd.py
real  0.245s

>>> eratosthenes_bytearray.py
real  0.801s

>>> eratosthenes_fast.py
real  0.028s


Conclusions:

* skipping even numbers (#1) gives ~2.6× speedup
* bytearray itself doesn't speed up — it's more about memory
* the hybrid (#3) gives ~22.6× speedup

Key trick in #3:

is_prime[start::p] = b"\x00" * (((size - start - 1) // p) + 1)


There's no Python loop here — everything is done by a C-level operation on the slice. On such tasks, this makes a huge difference.

General idea: in Python, we often speed up not the asymptotics, but the memory model and the number of passes over the data. Loops + memory → the main factors.

👉 @DataScience4
  • ❤ 5
  • 🔥 1
Post #9025 1.49K
✨ dataframe | Python Glossary ✨

📖 A data structure for working with tabular data in Python.

🏷️ #Python
  • ❤ 2
Post #9024 1.47K
✨ assertion | Python Glossary ✨

📖 A debugging aid that tests a condition as an internal self-check.

🏷️ #Python
  • ❤ 1
Post #9022 1.47K
Python tip:

You can make dataclass fields immutable by setting frozen=True.
In this case, fields cannot be mutated after the instance is created.

Example below👇

from dataclasses import dataclass

@dataclass(frozen=True)
class Color:
    name: str
    hex_value: str

color = Color("red", "#FF0000")

# color.name = "blue"  # will raise FrozenInstanceError


👉 @codeprogrammer
  • ❤ 4
  • 👏 1
Post #9021 1.39K
✨ Reference: Python Best Practices ✨

📖 Widely accepted and established guidelines, conventions, tips, and best practices for Python programmers.

🏷️ #23_terms
Post #9020 1.47K
✨ Reference: Python’s Built-in Exceptions ✨

📖 Predefined error classes that the Python interpreter uses to handle various error conditions.

🏷️ #47_terms
Post #9019 1.62K
✨ Python's deque: Implement Efficient Queues and Stacks ✨

📖 Use a Python deque to efficiently append and pop elements from both ends of a sequence, build queues and stacks, and set maxlen for history buffers.

🏷️ #intermediate #datastructures #python #stdlib
  • ❤ 1
Post #9018 1.53K
✨ Dependency Management | Python Best Practices ✨

📖 Guidelines and best practices for dependency management in Python.

🏷️ #Python
Post #9017 1.71K
✨ How to Integrate ChatGPT's API With Python Projects ✨

📖 Learn how to use the ChatGPT Python API with the OpenAI library to build AI-powered features in your Python applications.

🏷️ #intermediate #ai #api
Post #9016 1.58K
✨ Constants | Python Best Practices ✨

📖 Guidelines and best practices for using constants in your Python code.

🏷️ #Python
Post #9015 1.68K
✨ Optimization | Python Best Practices ✨

📖 Guidelines and best practices for optimizing your Python code.

🏷️ #Python
Post #9014 1.78K
A generator in Python is a function that returns an iterator object instead of a single result.

It differs from regular functions in that it uses the yield keyword instead of return. Each call to next(generator) produces the next value from the sequence.

Example:

def multiple_generator(x, n):
    for i in range(1, n + 1):
        yield x * i

multiples_of_5 = multiple_generator(5, 3)

print(next(multiples_of_5))  # 5
print(next(multiples_of_5))  # 10
print(next(multiples_of_5))  # 15



https://t.me/DataScience4 ❤️
  • ❤ 6
  • 👍 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →