Python Tips | بالعربي
Open in Telegram
عندما تحقق إنجازات، استمر في التعلم ، ف سر نجاح المبرمجين هو الاستمرارية✨️.
Show more2 587
Subscribers
+1624 hours
+567 days
+25830 days
Data loading in progress...
Similar Channels
Tags Cloud
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
August '26
August '26
+281
in 2 channels
July '26
+270
in 2 channels
Get PRO
June '26
+492
in 1 channels
Get PRO
May '26
+394
in 2 channels
Get PRO
April '26
+116
in 0 channels
Get PRO
March '26
+46
in 0 channels
Get PRO
February '26
+49
in 2 channels
Get PRO
January '26
+54
in 1 channels
Get PRO
December '25
+80
in 1 channels
Get PRO
November '25
+98
in 2 channels
Get PRO
October '25
+101
in 1 channels
Get PRO
September '25
+41
in 0 channels
Get PRO
August '25
+46
in 0 channels
Get PRO
July '25
+53
in 0 channels
Get PRO
June '25
+37
in 0 channels
Get PRO
May '25
+60
in 0 channels
Get PRO
April '25
+58
in 1 channels
Get PRO
March '25
+36
in 0 channels
Get PRO
February '25
+62
in 0 channels
Get PRO
January '250
in 0 channels
Get PRO
December '24
+36
in 1 channels
Get PRO
November '24
+109
in 0 channels
Get PRO
October '24
+117
in 0 channels
Get PRO
September '24
+79
in 0 channels
Get PRO
August '24
+64
in 0 channels
Get PRO
July '24
+11
in 0 channels
Get PRO
June '24
+9
in 0 channels
Get PRO
May '24
+29
in 0 channels
Get PRO
April '24
+18
in 0 channels
Get PRO
March '24
+247
in 3 channels
Get PRO
February '240
in 3 channels
Get PRO
January '24
+3
in 3 channels
| Date | Subscriber Growth | Mentions | Channels | |
| 28 August | +2 | |||
| 27 August | +19 | |||
| 26 August | +12 | |||
| 25 August | +13 | |||
| 24 August | +9 | |||
| 23 August | +5 | |||
| 22 August | +7 | |||
| 21 August | +5 | |||
| 20 August | 0 | |||
| 19 August | +14 | |||
| 18 August | +16 | |||
| 17 August | +15 | |||
| 16 August | +10 | |||
| 15 August | +14 | |||
| 14 August | +13 | |||
| 13 August | +13 | |||
| 12 August | +15 | |||
| 11 August | +10 | |||
| 10 August | +6 | |||
| 09 August | +13 | |||
| 08 August | +9 | |||
| 07 August | +5 | |||
| 06 August | +11 | |||
| 05 August | +9 | |||
| 04 August | +13 | |||
| 03 August | +9 | |||
| 02 August | +5 | |||
| 01 August | +9 |
Channel Posts
عبارة "pass" في الكود
أثناء تنفيذ العبارة
pass، لا يحدث أي شيء، لذلك يمكن استخدامها كنوع من "الحاجز" أو "المُعامل الوهمي" في الأماكن التي تتطلب ذلك من الناحية النحوية.
على سبيل المثال، قد تحتاج إلى تعريف عدة دوال، وقد كتبت تعريفات الدوال وأسماءها، ولكنك لم تكتب الكود الفعلي بعد، ومع ذلك، يجب تشغيل البرنامج والتحقق من شيء آخر. هنا يأتي دور عبارة pass .
أو في بنية try-except، لتجاهل الخطأ في البرنامج وعدم معالجته بأي شكل من الأشكال.
#pass | #python| 2 | ➡️استخدام مكتبة aiometer لتنفيذ المهام غير المتزامنة بالتوازي
تتيح مكتبة aiometer إدارة فعالة لعدد المهام غير المتزامنة التي يتم تنفيذها في نفس الوقت. هذا مفيد عندما تحتاج إلى تقييد عدد المهام التي يتم تنفيذها بالتوازي، لتجنب إجهاد النظام.
تعتبر aiometer خيارًا ممتازًا في الحالات التي تحتاج فيها إلى التحكم في عدد العمليات المتوازية، على سبيل المثال، عند تنفيذ عدد كبير من الطلبات لواجهة برمجة التطبيقات (API).
🔗رابط إلى الوثائق | 174 |
| 3 | تنزيل مقاطع الفيديو من يوتيوب
توفر الحزمة pytube جميع الوظائف الضرورية لتنزيل مقاطع الفيديو من يوتيوب، بالإضافة إلى جمع جميع المعلومات عنها.
للعمل، نحتاج إلى إنشاء كائن من فئة YouTube. بالإضافة إلى الرابط إلى الفيديو، يمكن تمرير وظائف لمعالجة تقدم التنزيل وإكماله كمعلمات إلى المُنشئ.
معظم مقاطع الفيديو على يوتيوب لا تحتوي على مسار صوتي في التدفقات ذات الدقة العالية، أي التي تزيد عن 720p، ويرجع ذلك إلى تقنية نقل DASH التي تستخدمها يوتيوب.
في الصورة، أظهرنا كيفية تصفية التدفقات ذات النقل التدريجي واختيار التدفق من القائمة الناتجة والذي يتمتع بأعلى دقة متاحة، حتى 720p.
لتنزيل التدفق المحدد، نستخدم الدالة()download. يمكن تمرير مسار المجلد لحفظ الملف واسم الملف كمعلمات إلى هذه الدالة.
#python | #youtube | 485 |
| 4 | ➡️ استخدام cachetools للتخزين المؤقت في Python
هي مكتبة صغيرة لكنها قوية للتخزين المؤقت، توفر استراتيجيات تخزين مؤقت متنوعة، مثل LRU (الأقل استخداماً مؤخراً)، وLFU (الأقل استخداماً تكراراً)، وغيرها. تتيح تحسين الأداء من خلال تجنب الحسابات أو الطلبات المتكررة.
• تُعدّ cachetools مفيدة عندما يكون هناك حاجة لتخزين النتائج المؤقتة أو البيانات الوسيطة لرفع الأداء.
🔗 رابط إلى التوثيق
#cachetools | #cache | #python | 706 |
| 5 | memory_profiler
هي وحدة خارجية للغة البرمجة بايثون، توفر أدوات لتحليل استخدام الذاكرة في برامجك. تتيح لك هذه الوحدة تتبع التغيرات في حجم الذاكرة أثناء تنفيذ الكود، واكتشاف تسريبات الذاكرة، وتحسين استخدام الذاكرة.
للاستفادة من memory_profiler يجب عليك أولاً تثبيتها. يمكن القيام بذلك باستخدام أداة تثبيت الحزم الخاصة بلغة بايثون، مثل pip.
#memory_profiler | #memory | #python | 707 |
| 6 | نختبر سرعة الإنترنت
كل شخص اختبر سرعة إنترنت الخاص به على Speedtest على الأقل مرة واحدة. ويبدو أن لديهم ليس فقط موقعًا وتطبيقات، بل أيضًا حزمة بلغة Python لهذا الغرض.
تُصدر طرق كائن فئة Speedtest وهي download() وupload() سرعة التنزيل والرفع على التوالي.
تُرجع الطرق النتيجة بالبايت، لذا في المثال قمت بتحويل جميع البيانات إلى ميجابايت عند الإخراج لتوضيح الأمر.
#speedtest | #python | 793 |
| 7 | عداد التكرار
مترجم آخر رائع من itertools هو count، الذي يولد تسلسلاً لا نهائياً من الأرقام.
في الحجج، يمكنك تحديد قيم start و step: الأول مسؤول عن القيمة الأولية، والثاني عن الخطوة، تماماً كما في range.
عادةً ما يتم استخدام count نادراً مع حلقة for. غالباً ما تجده مع دوال مثل zip أو map.
#itertools | #python | 655 |
| 8 | المدمرات (Destructors)
في معظم لغات البرمجة، عند حذف نسخة من فئة ما، يتم استدعاء طريقة خاصة تسمى "المدمر".
في بايثون، يمكن إعادة تعريف المدمر باستخدام الميثود الخاصة __del__، والتي يتم استدعاؤها تلقائيًا عند حذف الكائن.
بشكل عام، نادرًا ما يتم إعادة تعريف المدمرات في بايثون، ولكن من المفيد معرفة أن هذه الطرق تحديدًا مسؤولة عن عمليات التنظيف عند حذف الكائن.
#python | #class | #objects | 885 |
| 9 | فك ضغط التسلسلات عندما يكون عدد العناصر غير معروف
في Python3 ، يوجد عامل النجمة لعمله قبل اسم متغير (*) - وهو عملية فك ضغط تسلسل موسعة.
يتم تخصيص جزء من القائمة، الذي يحتوي على جميع العناصر غير المخصصة، والمتوافقة مع هذا الموضع، للمتغير الذي يحمل علامة النجمة.
#python | 1 504 |
| 10 | No text... | 1 704 |
| 11 | No text... | 2 595 |
| 12 | استخدم ()dict.get بدلاً من []dict
هناك عدة طرق للحصول على القيم من القواميس، وحتى في هذا الموضوع غالبًا ما يختلف المطورون.
كثير من الناس يحصلون على القيم باستخدام المفاتيح عبر الأقواس المربعة، ولكن إذا لم يكن المفتاح موجودًا، فسيتم استدعاء استثناء.
لذلك نعتقد أنه من الأفضل استخدام طريقة get للقواميس. تكمن ميزتها الرئيسية في أنها تقبل وسيطًا اختياريًا مسؤولًا عن القيمة الافتراضية.
وبالتالي، إذا لم يتم العثور على القيمة للمفتاح، فستُعاد القيمة الافتراضية.
في النهاية، نزيل الأخطاء المحتملة في حالة عدم وجود المفاتيح المطلوبة في القاموس.
#python | #dictionary | 1 517 |
| 13 | البحث عن الأخطاء الإملائية
تقوم مكتبة spellchecker باكتشاف الأخطاء في النص، كما يمكنها اقتراح خيارات للإصلاح.
في المثال، نمر عبر قائمة من كلمتين، واحدة منهما ('therre') مكتوبة بشكل خاطئ. تلاحظ الدالة correction ذلك وتقترح التصحيح الأكثر احتمالاً واحداً، بينما candidates تقترح عدة خيارات.
تدعم المكتبة تصحيح 12 لغة حاليًا ومنها اللغة العربية .
يمكنك العثور على الوثائق هنا.
#python | #spellchecker | 1 484 |
| 14 | frozenset
🔒تُعتبر frozenset بأنها مجموعة غير قابلة للتغيير. الفرق الرئيسي بين set و frozenset هو أن set هو نوع بيانات قابل للتعديل، بينما لا يمكن تغيير frozenset بعد إنشائه.
إليك بعض الميزات الرئيسية لـ frozenset:
✍️عدم القابلية للتغيير: هذا يعني أنك لا تستطيع إضافة أو حذف أو تعديل العناصر في frozenset بعد إنشائه.
🔢قابلية التجزئة (Hashability): نظرًا لأن frozenset غير قابل للتغيير، فهو قابل للتجزئة، مما يعني أنه يمكن استخدامه كمفتاح في القواميس وعناصر في المجموعات.
لاحظ أنه نظرًا لأن frozenset لا يدعم التغييرات، فإن بعض الطرق التي تعدل المجموعة (مثل add، remove، discard) لا تنطبق على frozenset. ومع ذلك، يمكنك تنفيذ عمليات تعيد frozenset جديدًا، مثل الاتحاد والتقاطع.
#fundamentals | 1 390 |
| 15 | معرفة عنوان IP العام الذي يُخرجك للإنترنت
🔄 يستخدم هذا الكود مكتبة requests لإرسال طلب HTTP إلى خدمة الويب ipify، التي توفر واجهة برمجة تطبيقات (API) لمعرفة عنوان IP العام للمستخدم. تم كتابة الكود على في دالة بإسم ()get_public_ip، مما يجعله ملائمًا لإعادة الاستخدام.
import requests
def get_public_ip():
try:
response = requests.get('https://api.ipify.org?format=json')
ip = response.json().get('ip')
return ip
except requests.RequestException:
return "Failed to retrieve public IP address"
⚠️ يضمن استخدام كتلة try-except معالجة الأخطاء التي قد تحدث أثناء الطلب (مثل مشاكل الاتصال بالإنترنت). إذا نجح الطلب، فإن الدالة تعيد عنوان IP، وإلا فإنها تعيد رسالة خطأ. | 2 054 |
| 16 | اشرح ما هو معالجة الاستثناءات في بايثون، وقدم مثالاً برمجياً يوضح استخدام كتلة try-except.
تسمح معالجة الاستثناءات في بايثون للمبرمج بالتعامل مع الأخطاء في الكود وإدارتها. تحتوي كتلة try على الكود الذي قد يسبب استثناءً. إذا حدث استثناء، ينتقل تنفيذ الكود إلى كتلة except، التي تحتوي على معالجات لأنواع محددة من الاستثناءات.
تنفذ كتلة else إذا لم يحدث أي استثناء في كتلة try.
تنفذ كتلة finally دائماً، بغض النظر عما إذا حدث استثناء أم لا. تُستخدم هذه الكتلة، على سبيل المثال، لإطلاق الموارد.
في المثال الموضح في الصورة، تُظهر الدالة divide_numbers مثالاً على قسمة عددين باستخدام كتلة try-except. في حالة القسمة على الصفر، يتم عرض رسالة خطأ. إذا تم تمرير قيم غير رقمية، فإن البرنامج يبلغ عن خطأ في النوع. في كتلة else، يتم عرض رسالة بنجاح تنفيذ العملية، وفي كتلة finally، يتم عرض رسالة تنفذ دائماً.
#Exceptions | 1 132 |
| 17 | Code + Python Drink = Developer Mode ON | 1 185 |
| 18 | إرجاع عدة قيم من دالة
هل تعلم أنه يمكنك إرجاع عدة قيم من دالة؟ إليك كيفية القيام بذلك.
#python | #fundamentals | 1 175 |
| 19 | 3 حيل مع itertools 🎩✨
اليوم نستعرض بعض الوظائف من module مفيدة جدًا تتيح التعامل بكفاءة مع الكائنات القابلة للتكرار.
لنبدأ بوظيفة بسيطة جدًا – chain تتيح هذه الوظيفة "دمج" عدة عناصر قابلة للتكرار في عنصر واحد🔗.
بعد ذلك، accumulate. هذه الوظيفة تشبه إلى حد ما reduce، ولكن بدلاً من إعطاء قيمة نهائية واحدة، فإنها تطبق الوظيفة المحددة في الargument الثاني (في هذه الحالة min) بشكل متسلسل على كل عنصر لاحق بالترتيب: min(11)، min(11, 3)، min(11, 3, 9) وهكذا📉.
ولإنشاء توافيق من عناصر كائن قابل للتكرار محدد، ستحتاج إلى وظيفة combinations. يمكن تحديد طول هذه التوافقة باستخدام ال argument الثاني🧩.
#module | #itertools | 1 300 |
| 20 | استخدام wget في Python لتحميل الملفات
تُعتبر wget أداة سطر أوامر لتحميل المحتوى من الشبكة، والتي يمكن استخدامها بفعالية عبر Python. على الرغم من أن Python لا تحتوي على دعم مدمج لـ wget، يمكن استخدام وحدة wget التي تسهل تحميل الملفات.
سيقوم هذا الكود بتحميل الملف من العنوان المحدد وحفظه في المجلد الحالي.
#python | #wget | 1 225 |
