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

على الرغم من أن ال Loops رائعة، إلا أن لها قيودًا، خاصةً في أساليب البرمجة الحديثة ولبعض أنواع المهام.
فهم هذه القيود يساعد في اختيار الأداة المناسبة للمهمة.
كل تكرار للحلقة في بايثون يؤدي إلى تكاليف إضافية لل Interpreter الخاص باللغة (المفسر) ، مثل التحقق من أنواع البيانات وإدارة الذاكرة.
وقد يتراكم ذلك بشكل ملحوظ على مجموعات البيانات الكبيرة.
.
لتجاوز هذا القيد، تحتوي بايثون على مكتبة مضمنة ملائمة itertools.
على سبيل المثال، افترض أنك تريد إنشاء جميع الأزواج الفريدة من قائمة محددة ، لا يهم الترتيب، ولا يجب أن يشكل أي عنصر زوجًا مع نفسه.
لتجنب تضخيم الكود وتقليل مخاطر الأخطاء، يمكنك استخدام مكتبة itertools. تقوم الدالة ()itertools.combinations مباشرةً بإنشاء جميع مجموعات العناصر الفريدة من iterable دون تكرار ودون اعتبار الترتيب.
في الصورة أعلاه ، إليك كيف يمكن كتابة الكود باستخدام combinations من itertools .
4👍3
◇ يعتبر Linux مجاني
◇ و Docker مجاني
◇ و Kubernetes مجاني
◇ و GitHub & Git مجانيان
◇ و Python مجاني
◇ و AWS، GCP، Azure مجانية (مع حدود)
◇ و Terraform مجاني

💻 أنت بحاجة فقط كمبيوتر + إنترنت
⏱️ يوميًا من ساعة إلى ساعتين ستتعلم مهارات تغير حياتك


صفر أعذار. ابدأ التعلم اليوم.
.
6🔥4
إن دمج منطق else داخل هياكل التكرار for و while يمثل فرصة هائلة لتعزيز كفاءة البرمجة لدينا.

فإننا نستخدم دورة while كمنصة ديناميكية لتنفيذ الشروط الاستراتيجية حتى نصل إلى حالة النجاح المثالية. 🌟

أما دورة for، فهي أداة قوية لتمكين التكرار الذكي لسطور الكود، مما يحول المهام الروتينية إلى عمليات مؤتمتة. تخيلوا القدرة على تحقيق هدفنا في طباعة الأرقام حتى 10 دون الحاجة إلى 10 مبادرات منفصلة، بل من خلال استغلال تسلسل مدروس يعكس رؤية شاملة! 💡

في بيئة بيثون المتطورة، نحن ممتنون لوجود ميزة تتيح لنا تضمين كتلة else في كلا النوعين من الدورات، وهي ميزة تتفعل فقط عند اكتمال الدورة بنجاح دون الحاجة إلى أي تدخل طارئ عبر break. هذا يعزز من مرونة وسلاسة سير العمل لدينا. 🤝

لنغوص معًا في هذا النموذج الملهِم الذي يوضح كيفية البحث عن "الإبرة" (needle) ضمن "كومة القش" (haystack) لتحقيق أقصى قيمة ممكنة! 📈 #Python #GrowthMindset #TechInnovation #CodingJourney
4
نصيحة Python : استخدم @property فقط للعمليات O(1) 🐍

يتوقع الناس عادةً أن كل ما يبدو وكأنه وصول إلى سمة يعمل بسرعة 🏃‍♂️.

لا أحد يريد الضغط على Ctrl-C أثناء قراءة سمة لأن هناك حسابًا مخفيًا لمستوى Deep Thought يستغرق 7.5 مليون سنة 🤯:
>>> life.meaning
42
🔥2😁1
python_basics.pdf
212.3 KB
أوراق Cheatsheets بتفيدكم في مجال ال Data Analysis وعلوم البيانات✨️.
4🫡1
Forwarded from TeleSpace Channel
يسعدنا الإعلان عن تحويل مشروع TeleSpace إلى مشروع مفتوح المصدر (Open Source) ليكون متاحاً بالكامل لمجتمع المطورين 🌎.

لمن لم يتعرف على المشروع بعد، يُعد TeleSpace بيئة تخزين سحابية متكاملة تعتمد على البنية التحتية غير المحدودة لـ Telegram🚀:
مبني بالكامل باستخدام لغة Python 🐍.

⚙️يعتمد على مكتبة Python-Telegram-Bot (PTB) كمحرك أساسي لضمان المعالجة المتزامنة (Asynchronous) والتفاعل عالي الأداء مع خوادم تيليجرام ☄️.

🖥 يستخدم PostgreSQL كنظام أساسي لإدارة البيانات الوصفية للملفات (Metadata)، مما يضمن سلامة البيانات وسرعة الاستعلامات 🖥.
وفي هذا التحديث، تم تزويد النظام بواجهة برمجة تطبيقات (API) متكاملة باستخدام FastAPI⚙️. وتُعد هذه الخطوة الأولى لتحويل TeleSpace من مجرد أداة إلى خدمة BaaS ، مما يتيح للمطورين دمج النظام بسلاسة مع أي تطبيقات أو منصات خارجية، واستخدامه كمحرك أساسي لرفع وإدارة الملفات 👨‍💻.

ونظراً لأن قوة البرمجيات تكمن في مجتمعها، فإن الكود المصدري متاح الآن للجميع. نرحب بجميع المساهمات، سواء في تحسين الأداء، كتابة الاختبارات، أو تطوير ميزات جديدة تخدم مجتمع المطورين🤝.

🖥رابط المستودع: https://github.com/H55an/TeleSpace
Please open Telegram to view this post
VIEW IN TELEGRAM
2👏1
فرز الـ Dictionary حسب القيم

فرز بيانات الـ Dictionary حسب قيم المفاتيح، وليس المفاتيح نفسها، يؤدي في كثير من الأحيان إلى حيرة شديدة.

يتم حل المشكلة بشكل بسيط باستخدام الوسيط key لدالة sorted لتحديد الدالة التي سيتم استدعاؤها على كل عنصر قبل المقارنة.
3
الحصول على أكبر أو أصغر الأرقام من القائمة

لنفترض أن لديك قائمة من الأرقام وتحتاج إلى الحصول على أكبر أو أصغر عدد محدد منها.
أحد حلول هذه المشكلة هو استخدام المكتبة المضمنة heapq.
🆒32👍1
توليد كل التبديلات المحتملة لكائن قابل للتكرار

تقوم الدالة permutations من وحدة itertools بإرجاع مكرر مع تبديلات متتالية من العناصر في التسلسل المدخل iterable. يتم تضمين كل مجموعة في ترتيب يحتوي على r عناصر.

إذا لم يتم تحديد r أو كانت None، فسيكون r بشكل افتراضي يساوي طول iterable وسيتم توليد جميع التبديلات الممكنة بالطول الكامل.
4
الدالة ()uniform

تُستخدم الدالة ()uniform من مكتبة random في Python لتوليد أرقام عشوائية ذات فاصلة عائمة في نطاق محدد.

البنية:
random.uniform(a, b)

ال arguments :
ال a: الحد الأدنى للنطاق.
وال b: الحد الأعلى للنطاق.

تقوم بإعادة رقم عشوائي ذات فاصلة عائمة، موزع بشكل متساوٍ في النطاق [a, b].
3👍1🆒1
strptime()

تُعتبر ()strptime ميثود للكلاس datetime، تُستخدم لتحويل سلسلة نصية تمثل تاريخًا ووقتًا إلى كائن datetime.

datetime.strptime(date_string, format_string)


الـ Arguments :
الـ date_string: سلسلة نصية تمثل تاريخًا ووقتًا.
الـ format_string: سلسلة نصية تمثل تنسيق التاريخ والوقت.
3
الميثود ()bytes.hex

تُعتبر ()bytes.hex ميثود تحول كائن bytes إلى سلسلة سداسية عشرية.

كيف تعمل:
تقوم ()bytes.hex بإعادة سلسلة تتكون من أرقام سداسية عشرية تمثل كل بايت في كائن bytes.

تأتي الأرقام السداسية العشرية في أزواج، حيث يمثل الرقم الأول النصف الأعلى من البايت، والثاني النصف الأدنى.


على سبيل المثال، سيتم تمثيل البايت الذي قيمته 10 (في النظام العشري) كـ "0a" في النظام السداسي العشري.
👍4
استخدم f-String في Python ومحددات التنسيق لتجميع الجداول بسرعة وبشكل سريع:
d = {'a':10, 'bcd': 2, 'e': 3456}

for key, value in d.items():
print(f'{key:.<5}{value:.>5}')


المخرجات:
a.......10
bcd......2
e.....3456
2
دالة ()islice

دالة ()islice هي دالة من وحدة itertools، تُستخدم لإنشاء عارض (iterator) يعيد العناصر المحددة من كائن قابل للتكرار.

تشبه هذه الدالة شرائح القوائم، لكنها تحتوي على بعض الاختلافات.
1👍4
الميثود ()setdefault

إن ()setdefault في Python تُرجع القيمة حسب المفتاح المحدد من القاموس(dictionary) .
إذا لم يكن المفتاح موجودًا في القاموس، فإن هذه الميثود تضيف المفتاح إلى القاموس مع القيمة الافتراضية، ثم تُرجع هذه القيمة.

وتعتبر ()setdefault بأن لها عاملان:
— المفتاح الذي يجب الحصول على القيمة منه.
— القيمة الافتراضية التي سيتم إضافتها إلى القاموس، إذا لم يكن المفتاح موجودًا.

إذا كان المفتاح موجودًا في القاموس، فإن الميثود تُرجع القيمة المرتبطة بهذا المفتاح.

إذا لم يكن المفتاح موجودًا في القاموس، فإنها تضيف المفتاح إلى القاموس مع القيمة الافتراضية، ثم تُرجع هذه القيمة.
3