3 حيل مع itertools 🎩 ✨
اليوم نستعرض بعض الوظائف من module مفيدة جدًا تتيح التعامل بكفاءة مع الكائنات القابلة للتكرار.
لنبدأ بوظيفة بسيطة جدًا –🔗 .
بعد ذلك،📉 .
ولإنشاء توافيق من عناصر كائن قابل للتكرار محدد، ستحتاج إلى وظيفة🧩 .
#module | #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
هل تعلم أنه يمكنك إرجاع عدة قيم من دالة؟ إليك كيفية القيام بذلك.
#python | #fundamentals
❤4👍1🔥1🆒1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤4😁1🆒1
اشرح ما هو معالجة الاستثناءات في بايثون، وقدم مثالاً برمجياً يوضح استخدام كتلة try-except.
تسمح معالجة الاستثناءات في بايثون للمبرمج بالتعامل مع الأخطاء في الكود وإدارتها. تحتوي كتلة try على الكود الذي قد يسبب استثناءً. إذا حدث استثناء، ينتقل تنفيذ الكود إلى كتلة except، التي تحتوي على معالجات لأنواع محددة من الاستثناءات.
تنفذ كتلة else إذا لم يحدث أي استثناء في كتلة try.
تنفذ كتلة finally دائماً، بغض النظر عما إذا حدث استثناء أم لا. تُستخدم هذه الكتلة، على سبيل المثال، لإطلاق الموارد.
في المثال الموضح في الصورة، تُظهر الدالة divide_numbers مثالاً على قسمة عددين باستخدام كتلة try-except. في حالة القسمة على الصفر، يتم عرض رسالة خطأ. إذا تم تمرير قيم غير رقمية، فإن البرنامج يبلغ عن خطأ في النوع. في كتلة else، يتم عرض رسالة بنجاح تنفيذ العملية، وفي كتلة finally، يتم عرض رسالة تنفذ دائماً.
#Exceptions
تسمح معالجة الاستثناءات في بايثون للمبرمج بالتعامل مع الأخطاء في الكود وإدارتها. تحتوي كتلة try على الكود الذي قد يسبب استثناءً. إذا حدث استثناء، ينتقل تنفيذ الكود إلى كتلة except، التي تحتوي على معالجات لأنواع محددة من الاستثناءات.
تنفذ كتلة else إذا لم يحدث أي استثناء في كتلة try.
تنفذ كتلة finally دائماً، بغض النظر عما إذا حدث استثناء أم لا. تُستخدم هذه الكتلة، على سبيل المثال، لإطلاق الموارد.
في المثال الموضح في الصورة، تُظهر الدالة divide_numbers مثالاً على قسمة عددين باستخدام كتلة try-except. في حالة القسمة على الصفر، يتم عرض رسالة خطأ. إذا تم تمرير قيم غير رقمية، فإن البرنامج يبلغ عن خطأ في النوع. في كتلة else، يتم عرض رسالة بنجاح تنفيذ العملية، وفي كتلة finally، يتم عرض رسالة تنفذ دائماً.
#Exceptions
❤9👍1🆒1
معرفة عنوان IP العام الذي يُخرجك للإنترنت
🔄 يستخدم هذا الكود مكتبة requests لإرسال طلب HTTP إلى خدمة الويب ipify، التي توفر واجهة برمجة تطبيقات (API) لمعرفة عنوان IP العام للمستخدم. تم كتابة الكود في دالة بإسم
⚠️ يضمن استخدام كتلة try-except معالجة الأخطاء التي قد تحدث أثناء الطلب (مثل مشاكل الاتصال بالإنترنت). إذا نجح الطلب، فإن الدالة تعيد عنوان 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"
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥4🆒1
المجموعات من نوع frozenset
🔒 تُعتبر frozenset بأنها مجموعة غير قابلة للتغيير. الفرق الرئيسي بين set و frozenset هو أن set هو نوع بيانات قابل للتعديل، بينما لا يمكن تغيير frozenset بعد إنشائه.
إليك بعض الميزات الرئيسية لـ
لاحظ أنه نظرًا لأن frozenset لا يدعم التغييرات، فإن بعض الطرق التي تعدل المجموعة (مثل add، remove، discard) لا تنطبق على frozenset. ومع ذلك، يمكنك تنفيذ عمليات تعيد frozenset جديدًا، مثل الاتحاد والتقاطع.
#fundamentals | #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') مكتوبة بشكل خاطئ. تلاحظ الدالة
🤟 تدعم المكتبة تصحيح 12 لغة حاليًا ومنها اللغة العربية .
📄 يمكنك العثور على الوثائق هنا.
#python | #spellchecker
في المثال، نمر عبر قائمة من كلمتين، واحدة منهما ('therre') مكتوبة بشكل خاطئ. تلاحظ الدالة
correction ذلك وتقترح التصحيح الأكثر احتمالاً ، بينما candidates تقترح عدة خيارات.#python | #spellchecker
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3🆒2
استخدم
هناك عدة طرق للحصول على القيم من القواميس، وحتى في هذا الموضوع غالبًا ما يختلف المطورون.
كثير من الناس يحصلون على القيم باستخدام المفاتيح عبر الأقواس المربعة، ولكن إذا لم يكن المفتاح موجودًا، فسيتم استدعاء استثناء.
لذلك نعتقد أنه من الأفضل استخدام طريقة get للقواميس. تكمن ميزتها الرئيسية في أنها تقبل وسيطًا اختياريًا مسؤولًا عن القيمة الافتراضية.
وبالتالي، إذا لم يتم العثور على القيمة للمفتاح، فستُعاد القيمة الافتراضية.
في النهاية، نزيل الأخطاء المحتملة في حالة عدم وجود المفاتيح المطلوبة في القاموس.
#python | #dictionary
()dict.get بدلاً من []dictهناك عدة طرق للحصول على القيم من القواميس، وحتى في هذا الموضوع غالبًا ما يختلف المطورون.
كثير من الناس يحصلون على القيم باستخدام المفاتيح عبر الأقواس المربعة، ولكن إذا لم يكن المفتاح موجودًا، فسيتم استدعاء استثناء.
لذلك نعتقد أنه من الأفضل استخدام طريقة get للقواميس. تكمن ميزتها الرئيسية في أنها تقبل وسيطًا اختياريًا مسؤولًا عن القيمة الافتراضية.
وبالتالي، إذا لم يتم العثور على القيمة للمفتاح، فستُعاد القيمة الافتراضية.
في النهاية، نزيل الأخطاء المحتملة في حالة عدم وجود المفاتيح المطلوبة في القاموس.
#python | #dictionary
❤6🔥2👏2🆒1
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥7❤6🆒2😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3🆒1
فك ضغط التسلسلات عندما يكون عدد العناصر غير معروف
في Python3 ، يوجد عامل النجمة لعمله قبل اسم متغير (*) - وهو عملية فك ضغط تسلسل موسعة.
يتم تخصيص جزء من القائمة، الذي يحتوي على جميع العناصر غير المخصصة، والمتوافقة مع هذا الموضع، للمتغير الذي يحمل علامة النجمة.
#python
في Python3 ، يوجد عامل النجمة لعمله قبل اسم متغير (*) - وهو عملية فك ضغط تسلسل موسعة.
يتم تخصيص جزء من القائمة، الذي يحتوي على جميع العناصر غير المخصصة، والمتوافقة مع هذا الموضع، للمتغير الذي يحمل علامة النجمة.
#python
❤4🔥3🆒1
المدمرات (Destructors)
في معظم لغات البرمجة، عند حذف نسخة من فئة ما، يتم استدعاء طريقة خاصة تسمى "المدمر".
في بايثون، يمكن إعادة تعريف المدمر باستخدام الميثود الخاصة
بشكل عام، نادرًا ما يتم إعادة تعريف المدمرات في بايثون، ولكن من المفيد معرفة أن هذه الطرق تحديدًا مسؤولة عن عمليات التنظيف عند حذف الكائن.
#python | #class | #objects
في معظم لغات البرمجة، عند حذف نسخة من فئة ما، يتم استدعاء طريقة خاصة تسمى "المدمر".
في بايثون، يمكن إعادة تعريف المدمر باستخدام الميثود الخاصة
__del__، والتي يتم استدعاؤها تلقائيًا عند حذف الكائن.بشكل عام، نادرًا ما يتم إعادة تعريف المدمرات في بايثون، ولكن من المفيد معرفة أن هذه الطرق تحديدًا مسؤولة عن عمليات التنظيف عند حذف الكائن.
#python | #class | #objects
❤5👨💻3👍2