Learn Python Coding
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
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام Learn Python Coding
تُعد قناة Learn Python Coding (@pythonre) في القطاع اللغوي الإنكليزية لاعباً نشطاً. يضم المجتمع حالياً 40 879 مشتركاً، محتلاً المرتبة 3 292 في فئة التكنولوجيات والتطبيقات والمرتبة 9 353 في منطقة الهند.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 40 879 مشتركاً.
بحسب آخر البيانات بتاريخ 27 أكتوبر, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار 395، وفي آخر 24 ساعة بمقدار -12، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 3.98%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 1.48% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 1 628 مشاهدة. وخلال اليوم الأول يجمع عادةً 604 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 2.
- الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل math, harvard, oxford, supervision, waybienad.
📝 الوصف وسياسة المحتوى
يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
“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”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 28 أكتوبر, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
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/0029VaC7Weq29753hpcggW2Aclass 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 #DevCommunityif not isinstance(age, int):
raise ValueError("age must be an int")
But then come email, JSON from APIs, query parameters, nested objects, configs, nullable fields, and type conversion. At some point, the code turns into a set of if/else and manual checks.
For such tasks, Pydantic is often used. Installation:
pip install pydantic
pip install "pydantic[email]"
Create a model:
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
Now the data is validated automatically:
user = User(
name="Alex",
age="30"
)
print(user.age)
print(type(user.age))
The result:
30
<class 'int'>
Pydantic will automatically convert the string "30" to an int. If you pass an incorrect value, you'll get a ValidationError:
User(
name="Alex",
age="test"
)
This is especially convenient when working with APIs, JSON, query parameters, and incoming data from outside.
A common production case is checking email:
from pydantic import BaseModel, EmailStr
class User(BaseModel):
email: EmailStr
User(email="alex@test.com")
If the email is invalid, Pydantic will throw a ValidationError. You can set default values:
from pydantic import BaseModel
class Config(BaseModel):
host: str = "localhost"
port: int = 5432
And allow None:
from pydantic import BaseModel
class User(BaseModel):
nickname: str | None = None
This field becomes optional. A practical example is processing an API response:
from pydantic import BaseModel
class Product(BaseModel):
id: int
title: str
price: float
data = {
"id": "1",
"title": "Keyboard",
"price": "99.5"
}
product = Product(**data)
print(product)
The types will be automatically converted. For nested model structures, you can combine:
from pydantic import BaseModel
class Address(BaseModel):
city: str
zip_code: str
class User(BaseModel):
name: str
address: Address
user = User(
name="Alex",
address={
"city": "Berlin",
"zip_code": "10115"
}
)
print(user)
The nested object will also be validated. Serialization in Pydantic v2:
print(user.model_dump())
print(user.model_dump_json())
Pydantic is actively used in FastAPI, ETL, microservices, data pipelines, and API clients.
For working with environment variables in Pydantic v2, a separate package is usually used:
pip install pydantic-settings
It's important to understand: Pydantic is not an ORM and does not replace business logic. Its task is to validate data, convert types, and describe schemas.
🔥 Pydantic significantly reduces the amount of manual data validation and makes processing incoming structures more predictable.
#Python #Pydantic #DataValidation #FastAPI #Coding #DevOps
✨ Join Best TG Channels https://t.me/addlist/0f6vfFbEMdAwODBk
⭐️ Join Our WhatsApp Channel https://whatsapp.com/channel/0029VaC7Weq29753hpcggW2Afor i, item in enumerate(items):
print(i, item)
#Python #Coding #Programming #Dev #Tech #Code