Python Tips | بالعربي
2.49K subscribers
172 photos
87 videos
27 files
218 links
عندما تحقق إنجازات، استمر في التعلم ، ف سر نجاح المبرمجين هو الاستمرارية✨️.
Download Telegram
نحسب الإشارات(المراجع) للكائن

في Python لا داعي أبدًا للقلق بشأن إدارة الذاكرة، لأن كل هذا يتم تلقائيًا.

عداد المراجع هو ما يساعد في التحقق مما إذا كان يجب تشغيل جمع النفايات أم لا. يقوم جامع النفايات بحذف الكائن من الذاكرة في حالة إذا لم يكن أي شيء لا يشير إليه.

إذا كان كائن آخر يشير إلى الكائن، فإن لديه قيمة غير صفرية من المراجع ولا يمكن جمعه كنفايات (ما لم تقم بحذفه يدويًا بالطبع).

يُظهر المثال أعلاه طريقة بسيطة لكيفية الاطلاع على عدد المراجع للكائن.
#python | #ctypes
5
تشغيل ملفات الصوت🎵

عن طريق استخدام المكتبة متعددة المنصات playsound، والتي يمكن تثبيتها بسهولة عبر pip.

تحتوي على دالة مفيدة واحدة فقط لتشغيل ملف صوتي:
playsound('path/to/file.mp3')


يمكن استخدام المسار إلى ملف .mp3 أو .wav، أو حتى url الخاص به كحجة للدالة🎧.
#audio | #playsound
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒3👍2👨‍💻2
لقد قام أحدهم بتسريب كود المصدر لأداة "استكشاف الأخطاء وإصلاحها" الموجودة في نظام التشغيل Windows 😭.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣11😁3🌚3👨‍💻2
تحميل الفيديو من YouTube📹📥

مكتبة pytube في Python تُقدم جميع الوظائف اللازمة لتحميل الفيديوهات من YouTube، بالإضافة إلى جمع جميع المعلومات المتعلقة بها📊.

للعمل، نحتاج إلى إنشاء كائن من فئة YouTube. بالإضافة إلى ذلك، يمكن تمرير رابط الفيديو في الباني (constructor) كـ معلمات للدالة لمعالجة تقدم التحميل وإكماله⚙️.
معظم الفيديوهات على يوتيوب لا تحتوي على مسارات صوتية في التدفقات ذات الدقة العالية، فوق 720p — ويرجع ذلك إلى تقنية نقل DASH التي يستخدمها يوتيوب🖼.

لذلك، في الصورة أعلاه أوضحنا كيفية تصفية التدفقات ذات النقل التدريجي واختيار الدقة القصوى المتاحة حتى 720p من القائمة الناتجة📹.

لتحميل التدفق المحدد، نستخدم دالة ()download ، ويمكن تمرير مسار المجلد للحفظ واسم الملف كـ Arguments 📀.
#youtube | #pytube | #download
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍1🆒1
مكتبة setuptools

تُعد مكتبة setuptools أداة لتبسيط عملية إنشاء وتثبيت وتوزيع حزم Python. تُستخدم بشكل أساسي لتسهيل تثبيت وإدارة تبعيات حزم Python🐍.

توفر setuptools الوظائف اللازمة لإنشاء ملفات setup.py، التي تحتوي على معلومات حول حزمة مشروعك، وتبعياتها، وبياناتها الوصفية الأخرى. تُستخدم هذه الملفات من قبل أدوات تثبيت الحزم، مثل pip.
#pip | #setup
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍1
التعامل مع مسارات الملفات

تحتوي Python على مكتبة مدمجة مريحة جدًا تسمى pathlib للتعامل البسيط مع مسارات الملفات🗂.

لتمثيل مسار الملف، يوجد فئة Path، يمكن من خلال كائناتها تنفيذ العمليات. على سبيل المثال، الطرق ()exists و ()is_dir تتحقق مما إذا كان الملف موجودًا وما إذا كان مجلدًا💠.

لكن الميزة الأذكى هي استبدال ()os.path.join ببدائل أكثر راحة وأناقة باستخدام الشوائب (slashes)، كما هو موضح في الصورة🖼.

وبالتالي، يمكن أن تكون حزمة pathlib بديلاً جزئيًا لـ os في بعض الحالات عند العمل مع المسارات الملفاتية.

#pathlib
Please open Telegram to view this post
VIEW IN TELEGRAM
5👏2🆒2
Web2py🌐

هو إطار عمل مجاني ومفتوح المصدر، مصمم لتطوير تطبيقات ويب آمنة وسريعة تعتمد على قواعد البيانات. تم كتابته بلغة Python ويتم برمجته باستخدام نفس اللغة.

#python | #web2py | #web
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🆒2🔥1
الميثود ()issuperset في المجموعات(set)

تُرجع الميثود ()issuperset القيمة True إذا كانت جميع عناصر المجموعة المحددة موجودة في المجموعة الأصلية، وإلا فإنها ترجع False في حال لم توجد في المجموعة الأصلية🛸.
#set | #issuperset
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥1
pprint

توفر الدالة pprint طباعة هياكل البيانات بشكل جميل وسهل القراءة.

يُستخدم لعرض كائنات معقدة مثل القواميس والقوائم، مع مسافات البادئة وأسطر متعددة لتحسين قابلية القراءة.
#pprint | #Customization
8🔥2👨‍💻1🆒1
.
في Python هناك عدة طرق للحصول على عنوان MAC لجهاز الكمبيوتر. إليك إحداها :
6🔥2👍1🆒1
النسخ السطحي

يمكن أن يكون نسخ الكائنات «سطحيًا» (shallow) أو «عميقًا» (deep). تكمن الفروقات بينهما في كيفية معالجة الكائنات المتداخلة.

عند النسخ السطحي، يتم إنشاء كائن جديد، لكن عناصره الداخلية (إذا كانت كائنات أيضًا) تظل مراجعات لنفس الكائنات الموجودة في الأصل. بعبارة أخرى، يتم نسخ المراجع إلى الكائنات فقط، وليس الكائنات نفسها.

#python | #copy
6🆒2🔥1👨‍💻1
يُقال أن التعلم لا ينتهي، لكن التكلفة قد تكون عائقاً.

هذه أضخم مكتبة برمجية مجانية في تأريخ الإنترنت ، تجمع كل الكتب البرمجية والأدلة التقنية والكورسات التعليمية المجانية لكل المجالات البرمجية والتقنية في مكان واحد .

تحتوي على :
🈂 آلاف الكتب والكورسات المجانية في كل لغات البرمجة (Python, Java , C , وغيرها).

💻 مصادر تعليمية تدعّم التطبيق العملي وليس فقط القراءة النظرية.

🎴 من تطوير الويب وتطبيقات الهواتف، إلى الذكاء الاصطناعي، الأمن السيبراني، وعلوم البيانات.

🔊 أقسام خاصة بـ "البودكاست" واللقاءات التقنية لتطوير عقليتك كمطور.
.
يدعم المستودع عشرات اللغات، ومن بينها قسم غني جداً بالمصادر التي باللغة العربية.

🖥 GitHub Repo : https://github.com/EbookFoundation/free-programming-books

#Ebooks | #Repo
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍6🔥43
استخدام wget في Python لتحميل الملفات

تُعتبر wget أداة سطر أوامر (Cli) لتحميل المحتوى من الانترنت، والتي يمكن استخدامها بفعالية عبر Python. على الرغم من أن Python لا تحتوي على دعم مدمج لـ wget، يمكن استخدام وحدة wget التي تسهل تحميل الملفات.

سيقوم هذا الكود بتحميل الملف من العنوان المحدد وحفظه في المجلد الحالي.

#python | #wget
3👍3🔥2
3 حيل مع itertools 🎩

اليوم نستعرض بعض الوظائف من module مفيدة جدًا تتيح التعامل بكفاءة مع الكائنات القابلة للتكرار.

لنبدأ بوظيفة بسيطة جدًا – chain تتيح هذه الوظيفة "دمج" عدة عناصر قابلة للتكرار في عنصر واحد🔗.

بعد ذلك، accumulate. هذه الوظيفة تشبه إلى حد ما reduce، ولكن بدلاً من إعطاء قيمة نهائية واحدة، فإنها تطبق الوظيفة المحددة في الargument الثاني (في هذه الحالة min) بشكل متسلسل على كل عنصر لاحق بالترتيب: min(11)، min(11, 3)، min(11, 3, 9) وهكذا📉.

ولإنشاء توافيق من عناصر كائن قابل للتكرار محدد، ستحتاج إلى وظيفة combinations. يمكن تحديد طول هذه التوافقة باستخدام ال argument الثاني🧩.

#module | #itertools
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥2🆒2👨‍💻1
إرجاع عدة قيم من دالة

هل تعلم أنه يمكنك إرجاع عدة قيم من دالة؟ إليك كيفية القيام بذلك.
#python | #fundamentals
4👍1🔥1🆒1
.
Code + Python Drink = Dev Mode ON💻.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥64😁1🆒1
اشرح ما هو معالجة الاستثناءات في بايثون، وقدم مثالاً برمجياً يوضح استخدام كتلة try-except.

تسمح معالجة الاستثناءات في بايثون للمبرمج بالتعامل مع الأخطاء في الكود وإدارتها. تحتوي كتلة try على الكود الذي قد يسبب استثناءً. إذا حدث استثناء، ينتقل تنفيذ الكود إلى كتلة except، التي تحتوي على معالجات لأنواع محددة من الاستثناءات.
تنفذ كتلة else إذا لم يحدث أي استثناء في كتلة try.
تنفذ كتلة finally دائماً، بغض النظر عما إذا حدث استثناء أم لا. تُستخدم هذه الكتلة، على سبيل المثال، لإطلاق الموارد.

في المثال الموضح في الصورة، تُظهر الدالة divide_numbers مثالاً على قسمة عددين باستخدام كتلة try-except. في حالة القسمة على الصفر، يتم عرض رسالة خطأ. إذا تم تمرير قيم غير رقمية، فإن البرنامج يبلغ عن خطأ في النوع. في كتلة else، يتم عرض رسالة بنجاح تنفيذ العملية، وفي كتلة finally، يتم عرض رسالة تنفذ دائماً.
#Exceptions
9👍1🆒1
معرفة عنوان 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، وإلا فإنها تعيد رسالة خطأ.
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4🆒1
المجموعات من نوع frozenset

🔒تُعتبر frozenset بأنها مجموعة غير قابلة للتغيير. الفرق الرئيسي بين set و frozenset هو أن set هو نوع بيانات قابل للتعديل، بينما لا يمكن تغيير frozenset بعد إنشائه.

إليك بعض الميزات الرئيسية لـ frozenset:
✍️عدم القابلية للتغيير: هذا يعني أنك لا تستطيع إضافة أو حذف أو تعديل العناصر في frozenset بعد إنشائه.

🔢قابلية التجزئة (Hashability): نظرًا لأن frozenset غير قابل للتغيير، فهو قابل للتجزئة، مما يعني أنه يمكن استخدامه كمفتاح في القواميس وعناصر في المجموعات.

لاحظ أنه نظرًا لأن frozenset لا يدعم التغييرات، فإن بعض الطرق التي تعدل المجموعة (مثل add، remove، discard) لا تنطبق على frozenset. ومع ذلك، يمكنك تنفيذ عمليات تعيد frozenset جديدًا، مثل الاتحاد والتقاطع.
#fundamentals | #frozenset
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥2👍1
البحث عن الأخطاء الإملائية

😶تقوم مكتبة spellchecker باكتشاف الأخطاء في النص، كما يمكنها اقتراح خيارات للإصلاح.

في المثال، نمر عبر قائمة من كلمتين، واحدة منهما ('therre') مكتوبة بشكل خاطئ. تلاحظ الدالة correction ذلك وتقترح التصحيح الأكثر احتمالاً ، بينما candidates تقترح عدة خيارات.

🤟تدعم المكتبة تصحيح 12 لغة حاليًا ومنها اللغة العربية .

📄 يمكنك العثور على الوثائق هنا.
#python | #spellchecker
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3🆒2
استخدم ()dict.get بدلاً من []dict

هناك عدة طرق للحصول على القيم من القواميس، وحتى في هذا الموضوع غالبًا ما يختلف المطورون.

كثير من الناس يحصلون على القيم باستخدام المفاتيح عبر الأقواس المربعة، ولكن إذا لم يكن المفتاح موجودًا، فسيتم استدعاء استثناء.

لذلك نعتقد أنه من الأفضل استخدام طريقة get للقواميس. تكمن ميزتها الرئيسية في أنها تقبل وسيطًا اختياريًا مسؤولًا عن القيمة الافتراضية.

وبالتالي، إذا لم يتم العثور على القيمة للمفتاح، فستُعاد القيمة الافتراضية.

في النهاية، نزيل الأخطاء المحتملة في حالة عدم وجود المفاتيح المطلوبة في القاموس.
#python | #dictionary
6🔥2👏2🆒1