Learn Python Coding
39.1K subscribers
636 photos
30 videos
24 files
391 links
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
Download Telegram
Why in Python it is better to check None using is ๐Ÿ

In Python, you should not write obj == None, even if sometimes it works the same โš ๏ธ

The reason is that == calls the comparison method eq, which can be overridden in the class โ€” and then the behavior becomes unpredictable ๐ŸŽฒ

For example:

class Weird:
def eq(self, other):
return True # always says "equal"

obj = Weird()

print(obj == None) # True
print(obj is None) # False

Here obj == None gives a false result due to custom logic ๐Ÿค”

Instead:

obj is None

is checks the identity of the object and cannot be overridden. Since None is a singleton, such a check is always correct and predictable โœ…

Conclusion: to check for None always use is None โ€” it is the right and safe approach ๐Ÿ›ก๏ธ

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

#Python #Programming #Coding #SoftwareDevelopment #TechTips #DevCommunity
โค4
Deep copying of objects with the copy module ๐Ÿ๐Ÿ“ฆ

import copy

# Original list with nested structure
original = [[1, 2, 3], [4, 5, 6]]

# 1. Shallow copy
shallow = copy.copy(original)
shallow[0][0] = 'X'
# Oh no! Both lists have changed, because the nested list wasn't copied, but passed by reference
print(f"Original after shallow: {original}") # [['X', 2, 3], [4, 5, 6]]

# Restore the data
original = [[1, 2, 3], [4, 5, 6]]

# 2. Deep copy
deep = copy.deepcopy(original)
deep[0][0] = 'X'
# Everything is fine! Only deep has changed, the original remains untouched
print(f"Original after deep: {original}") # [[1, 2, 3], [4, 5, 6]]

The link trap in Python ๐Ÿ”—๐Ÿ•ณ๏ธ

When you assign a list to another variable (A = B) or make a regular slice (A = B[:]), Python doesn't physically copy the data. It simply creates a new reference to the same objects in memory. If the list contains other mutable objects (lists, dictionaries, custom classes), standard copying methods will only create a shallow copy. The copy module allows you to control this process.

โ€” Breaking the links: The deepcopy function recursively traverses the entire data structure and creates honest, independent duplicates for each nested element. This ensures that changes in the copy will not harm the original data. ๐Ÿ”“๐Ÿ”’
โ€” Safe state: The use of deep copying is critical when implementing design patterns (for example, Snapshot/Memento), creating game state backups, or when you pass complex configurations to functions that may modify them accidentally. ๐Ÿ›ก๏ธ๐Ÿ’พ
โ€” A sensible balance: It's worth remembering that deepcopy works slower and consumes more memory than shallow copying, as it spends resources on creating new objects and checking for cyclic references. Use it specifically when there are nested mutable containers within the structure. โš–๏ธ๐Ÿง 

#Python #Programming #DeepCopy #Coding #Tech #Dev

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค6
Regular for-loops are versatile but not always optimal: they add extra interpreter overhead, which is especially noticeable on large data ๐Ÿ

In such cases, it's better to use standard Python tools, for example itertools โš™๏ธ

For example, to get all unique pairs from a list, nested loops are not needed โ€” just combinations():

from itertools import combinations

def get_unique_pairs(items):
return list(combinations(items, 2))

print(get_unique_pairs(['A', 'B', 'C', 'D']))

# Output:
# [('A', 'B'), ('A', 'C'), ('A', 'D'), ('B', 'C'), ('B', 'D'), ('C', 'D')]

Conclusion: instead of manual loops, it's better to use ready-made tools from the standard library โ€” it's cleaner and more efficient ๐Ÿš€

#Python #Coding #Programming #Developer #Tech #Optimization

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค5๐Ÿ‘1
๐Ÿ Python Roadmap 2026: Finally, a comprehensive and up-to-date map for learning Python, not just a list of "figure it out yourself" links

A large Russian-language Python roadmap for 2026 has been posted on GitHub - from the first scripts to the Middle+/Senior level.

The route is compiled for modern Python:

- Python 3.13+
- free-threaded mode without GIL
- JIT
- uv instead of the hassle with pip/venv/poetry
- ruff, pyright, pytest, hypothesis
- async-first approach
- typing
- CPython inside
- web, databases, ML/AI, DevOps, and architecture

The roadmap has a logical sequence: first the environment and foundation, then idioms, OOP, types, the standard library, asynchrony, testing, CPython internals, web, databases, the AI direction, production, and architecture.

A particular plus is the practical format. At each stage, there are tasks, checklists, code examples, and free resources. This is not a motivational document, but a roadmap that you can actually follow for several months and see progress.

For beginners - a clear path without chaos.
For juniors - a way to fill in the gaps.
For those who already write in Python - a good checklist to understand where you're still struggling.

Python in 2026 is about tooling, types, async, infrastructure, AI, and production discipline. And this roadmap is exactly about such a Python.

https://github.com/justxor/pythonroamap2026

#Python #PythonRoadmap #Programming #2026 #Coding #DevOps

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค2
5 More Must-Know Python Concepts ๐Ÿ

Let's take a look at five more fundamental concepts that every Python developer should have in their toolkit. ๐Ÿ› ๏ธ

Read: https://www.kdnuggets.com/5-more-must-know-python-concepts ๐Ÿ”—

#Python #Programming #Coding #Developer #TechTips #LearnPython

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค1
This media is not supported in your browser
VIEW IN TELEGRAM
โœ๏ธ Pyneng โ€” a large base for Python and network automation!

Detailed documentation and educational materials. The site contains lessons on Python syntax, working with files, functions, OOP, as well as separate sections on network technologies. The materials are presented with a large number of examples and practical tasks.

๐Ÿ“Œ I'll leave a link: https://pyneng.readthedocs.io/en/latest/

#Python #NetworkAutomation #Pyneng #LearnPython #DevOps #TechEducation

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค4
When you're doing a parser or migrating a site, there's often a pile of unreadable HTML markup on the screen. Converting this into neat Markdown is usually a hassle.

In the open code, I found a convenient tool called python-markdownify, which precisely solves the problem of converting HTML to Markdown.

The logic is simple: you take bulky HTML and get a clear and well-structured Markdown as a result.

The tool is easily customizable. You can clean up the necessary tags, change the format of headings, and neatly process tables and images. All of this can be configured.

It's installed via pip. It can be used both from Python code and from the command line, converting files in batches.

pip install python-markdownify

If desired, you can inherit and redefine the conversion rules for your own cases. The extensibility is fine there.

If you have to process large amounts of text or migrate a blog, the library saves a lot of time that would otherwise be spent on tedious work with regular expressions.

โžก๏ธ Link to GitHub
http://github.com/matthewwithanm/python-markdownify

#python #markdown #html #coding #devtools #opensource

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
โค4
๐ŸŽฐ Welcome Bonus 1200% โ€” Maczo Crypto Casino
๐ŸŽฎ Crypto exchange ยท Sports ยท Live casino โ€” all in one place
๐Ÿ’ณ USDT instant deposit & withdrawal
โ†’ https://tglink.io/f8661e4124cbf0
Advice for Python, UV, and Docker ๐Ÿ๐Ÿณ

Sometimes dependencies are better installed separately from the code โ€” this noticeably speeds up the compilation of Docker images ๐Ÿš€

The idea is simple: first, we install dependencies, then we add the project ๐Ÿ› 

Why is this necessary:
โ€ข Docker caches layers and does not rebuild them unnecessarily โšก๏ธ
โ€ข if only the code changes โ€” the dependencies are taken from the cache ๐Ÿ’พ
โ€ข if the dependencies change โ€” only the corresponding layer is rebuilt ๐Ÿ”
โ€ข without this, any minor change triggers a full reinstallation ๐Ÿ”„

Example:

RUN --mount=type=cache,target=/root/.cache/uv  --mount=type=bind,source=uv.lock,target=uv.lock  --mount=type=bind,source=pyproject.toml,target=pyproject.toml  uv sync --locked --no-install-project

COPY . /app
RUN --mount=type=cache,target=/root/.cache/uv uv sync --locked


#Python #Docker #DevOps #UV #SoftwareEngineering #TechTips

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

๐Ÿš€ Level up your AI & Data Science skills with HelloEncyclo โ€” a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
โœ… 13 courses live + 40+ coming soon
๐ŸŽฏ One access, lifetime updates
๐Ÿ”‘ Use code: PRESALE-BOOK-WAVE-2GFG
๐Ÿ‘‰ https://helloencyclo.com/?ref=HUSSEINSHEIKHO
โค4
Limiting program resources using the resource module ๐Ÿ›ก๏ธ

import resource
import sys

# 1. Limiting the size of RAM (soft and hard limits in bytes)
# Limit the memory to ~50 MB
memory_limit = 50 * 1024 * 1024
resource.setrlimit(resource.RLIMIT_AS, (memory_limit, memory_limit))

# 2. Checking the protection's working
try:
print("Trying to allocate a huge array of memory...")
huge_list = [i for i in range(10_000_000)]
except MemoryError:
print("The limit worked! The program didn't crash, but caught the error.")

# 3. Finding out how many resources the script has already consumed
usage = resource.getrusage(resource.RUSAGE_SELF)
print(f"Peak memory consumption (in KB): {usage.ru_maxrss}")

Protecting the server from "greedy" code ๐Ÿ”ง

When you run someone else's code, process user files, or write parsers, there's always a risk of a memory leak or an infinite loop. If such a script runs on the server, it can fill up all the RAM and bring down neighboring important processes (for example, the database). The built-in resource module (works on Unix/Linux/macOS) allows you to strictly limit the program's appetites.

โ€” Safe environment: You can limit not only RAM (RLIMIT_AS), but also CPU time (RLIMIT_CPU). If the code goes into an infinite loop, the system will gracefully terminate it after a specified number of seconds.

โ€” File system control: Using RLIMIT_FSIZE, you can prevent the script from creating files larger than a certain size. This will save the server's disks from being accidentally overwritten by gigantic logs.

โ€” Precise audit: The getrusage function provides detailed statistics on the current process: how much time the CPU spent on calculations, how many I/O operations there were, and what the maximum amount of memory used was during the entire operation.

#Python #ResourceManagement #ServerSafety #Coding #DevOps #Linux

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

๐Ÿš€ Level up your AI & Data Science skills with HelloEncyclo โ€” a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
โœ… 13 courses live + 40+ coming soon
๐ŸŽฏ One access, lifetime updates
๐Ÿ”‘ Use code: PRESALE-BOOK-WAVE-2GFG
๐Ÿ‘‰ https://helloencyclo.com/?ref=HUSSEINSHEIKHO
โค4
๐ŸŽ SPOTO Mid-Year Sale โ€“ Grab Your IT Certification Success Kit!

๐Ÿ”ฅ Whether you're prepping for #Python, #AI, #Cisco, #PMI, #Fortinet, #AWS, #Azure, #Excel, #Comptia, #ITIL, #Cloud or any other hot certification โ€“ SPOTO has your back with real exam dumps and hands-on training!

โœ… Free Resources:
ใƒปFree Python, Excel, Cyber Security, Cisco, SQL, ITIL, PMP, AWS courses: https://bit.ly/4alTSfk
ใƒปIT Certs E-book: https://bit.ly/49ub0zq
ใƒปIT Exams Skill Test: https://bit.ly/4dVPapB
ใƒปFree AI material and support tools: https://bit.ly/4elzcpl
ใƒปFree Cloud Study Guide: https://bit.ly/4u7sdG0

๐ŸŽ Join SPOTO Mid-Year Lucky Draw:
๐Ÿ“ฑ iPhone 17 ๐Ÿ›’ Free Order
๐Ÿ›’ Amazon Gift $100 ๐Ÿ“˜PMP/ AWS/ CCNA Course


๐Ÿ‘‰ Enter the Draw Now โ†’ https://bit.ly/4uN3lVt

๐Ÿ‘‰ Join Our IT Learning Community for free resources & support:
https://chat.whatsapp.com/FmbIbbqm2QhKglVpVTSH4d
๐Ÿ’ฌ Want exam help? Chat with an admin now:
https://wa.link/knicza

โฐ Mid-Year Deal Ends Soon โ€“ Don't Miss Out!
โšก๏ธ How Redis counts billions of unique values while barely using memory

There's an algorithm called HyperLogLog. It allows you to roughly estimate how many unique elements have passed through the system, using about 12 KB of memory.

The idea is simple: Redis doesn't store the elements themselves.

It does the following:

- Takes an element
- Calculates a hash from it
- Uses part of the hash as a cell number
- Checks the other part to see how many consecutive zeros it contains
- If the new number is larger than the old one, it updates the cell

Why does this work?

Because a long series of zeros in the hash is rare.

For example:

- 1 consecutive zero - quite common
- 5 consecutive zeros - less common
- 10 consecutive zeros - about a 1 in 1024 chance
- 20 consecutive zeros - a very rare event

If Redis sees a very rare pattern, it means that many different elements have likely passed through it.

Redis uses 16,384 small counters. Each stores the maximum "rarity" it has seen for its group of elements.

Then Redis combines these values mathematically to get an estimate of unique elements.

Not an exact number, but a very close approximation.

The main trick of HyperLogLog:

it can handle millions or even billions of values, but memory hardly increases at all.

That's why Redis can count unique users, IPs, requests, or events without huge tables and lists.

#Redis #HyperLogLog #DataScience #Tech #BigData #MemoryEfficiency

โœจ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk

โญ๏ธ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A

๐Ÿš€ Level up your AI & Data Science skills with HelloEncyclo โ€” a growing all-in-one platform featuring hands-on courses in LLMs, Deep Learning, MLOps, Data Engineering, and more.
โœ… 13 courses live + 40+ coming soon
๐ŸŽฏ One access, lifetime updates
๐Ÿ”‘ Use code: PRESALE-BOOK-WAVE-2GFG
๐Ÿ‘‰ https://helloencyclo.com/?ref=HUSSEINSHEIKHO
โค1
๐Ÿšจ ONLY THE FIRST 5 GET THIS.

I'm sharing this link with my network once โ€” and only the first 5 people who enroll through it lock in a deal that has never been offered before.

๐Ÿ‘‘ Lifetime access to HelloEncyclo โ€” every AI, ML & Data Science course ever built โ€” for ~$41. Once. Forever.
This isn't a drill. This isn't a rerun.
This is the founding-member price โ€” and it disappears the moment the first 250 seats globally are gone.


โœ… 13 courses live right now
โœ… 40+ more in 2โ€“3 weeks
โœ… Every future course included automatically
โœ… 15-day money-back โ€” full refund, no questions

Code: PRESALE-BOOK-WAVE-2GFG

(Log in with Gmail ยท valid once ยท applies at checkout)

๐Ÿ‘‡ First 5. That's it.

https://helloencyclo.com/?ref=HUSSEINSHEIKHO

โณ Once those 5 seats go through this link โ€”

I'm not sharing it again. ๐Ÿ”ฅ