Learn Python Coding
40.4K subscribers
703 photos
36 videos
24 files
503 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
Unpacking the remaining elements 🧩

Sometimes you need to extract the first and last elements from a list, while grouping everything in the middle separately. Instead of struggling with slicing ([1:-1]), use the asterisk (*). ⭐️

data = ["CEO", "Middle Python Dev", "Junior Dev", "QA", "HR"]

# The asterisk automatically collects everything "extra" into a separate list.
boss, *team, hr = data

print(boss) # CEO
print(team) # ['Middle Python Dev', 'Junior Dev', 'QA']
print(hr) # HR

#Python #Coding #DataScience #DevLife #Programming #Tech

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
2🔥1
Forwarded from Udemy Free
Python Practice Tests: 210+ Questions Basics to Advanced

210+ Python questions: fundamentals, OOP, libraries & advanced concepts. Ace your interview & certification prep.…

🏷 Category: development
🌍 Language: English (US)
👥 Students: 6,036 students
⭐️ Rating: 4.5/5.0 (25 reviews)
🏃‍♂️ Enrollments Left: 65
Expires In: 0D:30H:30M
💰 Price: $9.59FREE
🆔 Coupon: MGM3Y2D100

⚠️ Watch 2 short ads to unlock your free access.

💎 By: https://t.me/Udemy26
#Programming #Coding #Development #Tech #Python #DataScience
3
Python allows you to create enumerations that are also regular strings!

Previously, when working with APIs, JSON, and configurations, it was often necessary to manually extract the value from an Enum.

For example:
class Status(Enum):
ACTIVE = "active"

When serializing, you would get an enumeration object:
Status.ACTIVE

rather than a regular string:
"active"

In Python 3.11, StrEnum was introduced to solve this problem.
from enum import StrEnum

class Status(StrEnum):
ACTIVE = "active"
BLOCKED = "blocked"

Now, the value can be used wherever a string is expected:
json.dumps({"status": Status.ACTIVE})

The result:
{"status": "active"}

At the same time, the advantages of enumerations are preserved:
Status.ACTIVE
Status.BLOCKED

You cannot accidentally pass an incorrect value:
Status("unknown")

will result in an error.

🔥 StrEnum allows you to combine the strict typing of enumerations with the convenience of regular strings, without manual conversion when working with APIs, JSON, and configurations.

#Python #Coding #StrEnum #DevTips #Programming #Python311

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
5
How to check if a string is printable in Python 🤯

>>> "123".isprintable()
True

>>> "abc".isprintable()
True

>>> "\t
".isprintable()
False

# Python string method .isprintable()
>>> "123".isprintable()
True
>>> "abc".isprintable()
True
>>> "\t
".isprintable()
False

#Python #Programming #Coding #Tutorial #Tech #Dev

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
5
collections.ChainMap — a built-in Python class that combines multiple dictionaries or other mappings into a single, updatable view. 🧠

Instead of merging dictionaries and creating new data structures in memory, it links them by reference, allowing you to search and manage them as a single entity. 🔗

# Example usage of collections.ChainMap
from collections import ChainMap

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
combined = ChainMap(dict1, dict2)
print(combined['b']) # Output: 2

#Python #Coding #DataStructures #Programming #Tech #DevTools

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
3
Python Tip 🐍

In Python, you can unpack both a string and a list using the same code.

# Example usage
text = "abc"
lst = [1, 2, 3]
# Unpacking works similarly for both
a, b, c = text
x, y, z = lst

#Python #Coding #Programming #Tips #Tech #Developer

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
5
Forwarded from Udemy Free
🎓 New Free Course Alert!

Data Structures & Algorithms (Python): Practice Exams

Ace technical coding interviews with 200 questions on Big O, Graphs, Hash Maps, and Dynamic Programming.…

📁 Category: Development / Software Engineering
🎯 Level: Intermediate Level
🗣 Language: English
👨‍🎓 Enrolled: 317 students
Rating: 0/5.0
💵 Price: $49.99FREE (100% OFF)
🎟 Coupon: BC7C61AF20F4AE188D90

Your free link unlocks automatically in a few seconds — no ad required.

💎 By: https://t.me/Udemy26
#Programming #Coding #Development #Tech #Python #DataScience
2
Creating Nested Dictionary Values using `setdefault()` 🔥

When grouping data, it's often necessary to check if a key exists, create a container for it, and then add a value.

For example, distributing users by role. Without special methods, this usually involves a separate key check.

users = [
("admin", "alex"),
("user", "max"),
("admin", "kate"),
]

groups = {}

for role, name in users:
if role not in groups:
groups[role] = []

groups[role].append(name)


The setdefault() method allows you to perform this operation directly when accessing the dictionary. If the key exists, it returns its current value. If the key is missing, the provided value is written to the dictionary and then returned:

groups = {}

for role, name in users:
groups.setdefault(
role,
[],
).append(name)


The result is the same structure without a separate key existence check:

print(groups)

# {
# 'admin': ['alex', 'kate'],
# 'user': ['max']
# }


It's important to note that the expression of the second argument is evaluated every time setdefault() is called, even if the key already exists. Therefore, you should avoid creating expensive objects or performing functions with side effects there:

value = cache.setdefault(
key,
build_value(),
)


In this code, build_value() will be called before the method itself is executed. If the value creation should only happen when the key is missing, it's better to use an explicit check or a suitable data structure, such as defaultdict.

🔥 setdefault() is well-suited for compactly initializing simple mutable containers when grouping and aggregating data. However, it's important to remember that the provided value is evaluated regardless of whether the key exists.

#Python #Coding #Dicts #Programming #CodeTips #DevLife

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Here's a small fact about Python 🐍

The := operator is called the "walrus" because the symbols resemble the eyes and tusks of a walrus 🦭

It was introduced in Python 3.8 and allows you to assign a value to a variable and use it directly within the expression at the same time.

For example:

while (line := input("Say something: ")) != "quit":
print(f"You said: {line}")


Without it, you would have to retrieve the value separately using input(), and then check it.

Have you ever used the := operator in your code?

#Python #Programming #WalrusOperator #Coding #TechFacts #Python3

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
4👍1
Do not violate the Single Responsibility Principle 🎯

A function should do one thing, and do it well.

This function does too much:

def calculate_final_total(
price: float,
quantity: int,
discount_rate: float,
tax_rate: float
) -> float:
# Calculate the subtotal
subtotal = price * quantity

# Apply the discount
discounted_amount = subtotal * (1 - discount_rate)

# Calculate the tax
final_total = discounted_amount * (1 + tax_rate)

return final_total


The problem here is that the calculation of the subtotal, discount, and tax are all combined into one function. Any change to one of these steps can affect the entire calculation.

It's better to break down the logic into smaller, more specialized functions:

def calculate_subtotal(price: float, quantity: int) -> float:
return price * quantity

def apply_discount(subtotal: float, discount: float) -> float:
return subtotal * (1 - discount)

def calculate_tax(amount: float, tax_rate: float) -> float:
return amount * (1 + tax_rate)


This is much better.

Smaller functions with a single task are easier to test with unit tests because they have fewer dependencies and require less mocking.

Furthermore, isolated components are easier to reuse in different parts of the application or pipeline without bringing in unnecessary dependencies.

Therefore, keep your functions simple and focused.

One function – one responsibility. 📝

#Python #Coding #SoftwareDevelopment #CleanCode #Programming #BestPractices

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

⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2A
3