ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
بصفتك مبرمجًا ، قد تواجه مواقف قد تتعرض فيها التعليمات البرمجية لأخطاء أو استثناءات ، لذلك من الضروري فهم كيفية التعامل مع أنواع مختلفة من الأخطاء في التعليمات البرمجية الخاصة بك. تعتبر معالجة الأخطاء جزءًا مهمًا من دورة التشفير. إحدى الطرق الشائعة للتعامل مع الأخطاء في بايثون هي استخدام تقنية try-except.
تتكون تقنية Python try-except من كتلة try وكتلة استثناء. تحتوي كتلة try على الكود الذي قد ينتج عنه خطأ أو استثناء ، وتحمل كتلة الاستثناء الرمز للتعامل مع تلك الأخطاء أو الاستثناءات.
عندما يتم تشغيل التعليمات البرمجية الخاصة بك دون أي مشكلة داخل كتلة try ، يتم تجاوز كتلة الاستثناء. ومع ذلك ، إذا حدث خطأ أو استثناء داخل كتلة try ، فسيتم تنفيذ الكود الذي كتبته في كتلة الاستثناء لمعالجة المشكلة.
في هذه المقالة ، سنناقش كتلة try-المتوقعة في Python ، والأنواع المختلفة من الأخطاء والاستثناءات التي قد تواجهها عند كتابة التعليمات البرمجية ، وكيف يمكنك التعامل معها باستخدام عبارات try-except.
دعنا ندخله!
جدول المحتويات
ما هي أنواع الأخطاء في بايثون؟
في بايثون ، يمكن تصنيف الأخطاء تقريبًا إلى نوعين رئيسيين:
1. أخطاء بناء الجملة : تُعرف هذه الأخطاء أيضًا باسم أخطاء التحليل الناتجة عن القواعد النحوية غير الصحيحة في التعليمات البرمجية. يكتشف مترجم بايثون الأخطاء النحوية ويوقف تنفيذ البرنامج.
فيما يلي مثال على خطأ في بناء الجملة في بايثون:
print("Hello, world!"
في هذا المثال ، كان قوس الإغلاق مفقودًا ، لذا فإن Python لا تفهم هذه التعليمات ، وبالتالي فهي خطأ نحوي.
الاستثناءات : تحدث الاستثناءات عندما يحدث خطأ ما أثناء تنفيذ البرنامج ، حتى لو كانت الشفرة صحيحة من الناحية التركيبية. يمكن أن تشمل هذه الأخطاء المنطقية أو أخطاء وقت التشغيل مثل المدخلات غير الصالحة أو القسمة على الصفر.
الوظيفة التالية هي مثال على استثناء في بايثون:
print(5 / 0)
سيؤدي هذا السطر من التعليمات البرمجية إلى استثناء ZeroDivisionError ، والذي يحدث عندما تحاول قسمة رقم على صفر.
في الصورة أعلاه ، يمكنك أن ترى حدوث استثناء عندما قسمنا 5 على 0.
الآن بعد أن فهمت ماهية الاستثناءات الموجودة في Python ، سنرى كيف يمكننا التعامل مع الاستثناءات من خلال عبارة Try-except في Python. دعنا نلقي نظرة على بناء جملة كتل Try and except في Python في القسم التالي.
ما هي صيغة محاولة واستثناء كتلة؟
يحدد بناء جملة الدالة كيف يجب عليك استخدام هذه الوظيفة في التعليمات البرمجية الخاصة بك ، بما في ذلك الوسائط التي تتطلبها وما تعيده.
لقد قمنا بإدراج بناء جملة جملة try باستثناء الكتل ، جنبًا إلى جنب مع بند else وأخيراً المجموعات أدناه.
1. صيغة بيان المحاولة
تسمح لك عبارة try باختبار كتلة من التعليمات البرمجية بحثًا عن أخطاء. عندما تكتب تعليمة برمجية داخل كتلة try ، فإن Python ستنفذها كجزء عادي من برنامجك.
لاستخدام تعليمة try ، قم ببساطة بتضمين الكود الخاص بك داخل كتلة try :
try: # Your code here
2. بناء جملة "استثناء"
تعالج جملة استثناء الأخطاء التي قد تحدث أثناء تنفيذ كتلة try . يمكنك تحديد نوع الاستثناء الذي تريد التقاطه أو استخدام عبارة General except (الاستثناءات العامة ) للتعامل مع جميع الاستثناءات.
يُظهر بناء الجملة التالي نوعًا معينًا من الاستثناءات:
try: # Your code here except ValueError: # Handle ValueError exception
للتعامل مع فئات الاستثناءات بشكل عام أو استثناءات متعددة ، يمكنك استخدام الصيغة الواردة أدناه:
try: # Your code here except Exception: # Handle any exception
3. بناء جملة بند آخر / كتلة
تسمح لك جملة else بتنفيذ كتلة التعليمات البرمجية في حالة عدم وجود أخطاء في كتلة try .
لاستخدام عبارة أخرى ، يمكنك وضعها بعد كتلة الاستثناء كما هو موضح أدناه:
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors
4. تركيب الكتلة النهائية
تتيح لك الكتلة النهائية تنفيذ التعليمات البرمجية ، بغض النظر عن نتيجة المحاولة باستثناء الكتل . يمكن أن يكون هذا مفيدًا للإجراءات التي تريد تنفيذها سواء حدث استثناء أم لا.
لاستخدام الكتلة النهائية ، يمكنك وضعها بعد كتلة else :
try: # Your code here except ValueError: # Handle ValueError exception else: # Code to execute when there are no errors finally: # Code to execute regardless of the result of the try and except blocks
لرؤية بناء الجملة أعلاه قيد التنفيذ ، سنلقي نظرة على مثال للتعامل مع الاستثناءات مع كتلة try-except في Python.
التعامل مع الاستثناءات باستخدام Try-except in Python
عند حدوث خطأ ما ، ستتوقف Python عادةً وتنشئ رسالة خطأ. يمكنك التعامل مع استثناءات متعددة باستخدام كتلة try and except .
في المثال أدناه ، نتعامل مع عملية القسمة على الصفر التي تم إنشاؤها مسبقًا عندما قسمنا 5 على 0.
try: print(5 / 0) except ZeroDivisionError: print("You can't divide by zero!")
في هذا الرمز ، يحدث استثناء ولكن البرنامج سيستمر في العمل ويطبع "لا يمكنك القسمة على صفر!" بدلا من التوقف مع وجود خطأ.
يتيح لك استخدام الكتل try and except التحكم في تدفق البرنامج. من خلال التعامل مع استثناءات محددة ، يمكنك تقديم ملاحظات مفيدة للمستخدم والحفاظ على تشغيل برنامجك عند ظهور خطأ ما.
في المثال أعلاه ، يمكنك أن ترى أننا استخدمنا الاستثناء المضمن ZeroDivisionError للتعامل مع الحالة. على غرار هذا ، هناك أنواع أخرى من الاستثناءات المضمنة أيضًا.
سيساعدك التعرف على أنواع الاستثناءات هذه على تحديد التوقع الذي يجب استخدامه عندما تواجه خطأ في كود Python الخاص بك ، لذلك دعونا نلقي نظرة على بعض الاستثناءات في القسم التالي.
ما هي أنواع الاستثناءات المضمنة؟
في Python ، الاستثناءات هي أمثلة لفئة مشتقة من فئة BaseException. عندما يتم اكتشاف الأخطاء ، تثير Python استثناءً. هناك العديد من الاستثناءات المضمنة التي من المحتمل أن تواجهها أثناء كتابة البرامج في Python.
دعنا نلقي نظرة على بعض أكثرها شيوعًا:
ZeroDivisionError: يحدث هذا عندما تحاول قسمة رقم على صفر.
NameError: يظهر هذا الخطأ عند محاولة استخدام متغير أو دالة لم يتم تعريفها.
ValueError : يحدث عندما تمرر وسيطة من النوع الصحيح ولكن بقيمة غير صالحة.
TypeError : يحدث هذا الخطأ عندما تمرر وسيطة من نوع بيانات خاطئ.
FileNotFoundError : يحدث عندما تحاول فتح أو الوصول إلى ملف غير موجود.
خطأ استيراد : يُطلق عند محاولة استيراد وحدة أو حزمة غير موجودة أو لا يمكن العثور عليها.
تشمل الاستثناءات الأخرى ذات الصلة ما يلي:
خطأ تجاوز: يظهر هذا الخطأ عندما تكون نتيجة الحساب كبيرة جدًا بحيث لا يمكن تمثيلها.
FloatingPointError: يتم رفع هذا الخطأ عند فشل عملية الفاصلة العائمة.
خطأ في الفهرس: يحدث عند محاولة الوصول إلى فهرس خارج نطاق تسلسل (على سبيل المثال ، قائمة أو مجموعة).
KeyError: يحدث عند محاولة الوصول إلى مفتاح غير موجود في القاموس.
خطأ EOFError: يظهر عندما تواجه Python نهاية الملف (EOF) أثناء قراءة الإدخال ، عادةً من استدعاء read ().
ArithmeticError: فئة فائقة للاستثناءات الحسابية ، مثل ZeroDivisionError و OverflowError و FloatingPointError.
في بعض الأحيان ، قد يكون من الضروري استخدام الاستثناءات المعرفة من قبل المستخدم مثل عبارة المرور في كتلة حيث يُتوقع حدوث استثناء. يجب أن يتم ذلك بحكمة لأنه قد يلغي الاستثناءات الأخرى.
لقد قدمنا لك القائمة أعلاه لأخطاء الاستثناءات الشائعة بحيث يمكنك استخدامها كدليل للتعامل مع الاستثناءات المحتملة عند كتابة برامج Python الخاصة بك.
يرجى ملاحظة أنه يمكن اكتشاف معظم الاستثناءات والتعامل معها ، ولكن يجب توخي الحذر للتعامل مع أحدث مكالمة لتجنب المعالجة المتداخلة لحالات الاستثناء الأخرى.
في القسم التالي ، سننظر في بعض حالات استخدام كتلة try-except في Python. دعنا ندخله!
5 حالات استخدام المحاولة باستثناء البلوك
تعد كتلة محاولة استثناء أحد الأساليب المستخدمة على نطاق واسع لمعالجة الأخطاء. فيما يلي بعض حالات استخدام كتلة Try except في Python:
1. ملف التعامل مع حاول باستثناء
عند العمل مع الملفات ، هناك دائمًا احتمال ألا يكون الملف موجودًا أو ليس في الموقع الذي يحاول البرنامج النصي الوصول إليه منه.
الكود التالي سيثير استثناء عندما نحاول فتح ملف غير موجود.
try: with open('file.txt', 'r') as file: print(file.read()) except FileNotFoundError: print('Sorry, this file does not exist.')
في هذا الكود ، نحاول فتح وقراءة ملف يسمى file.txt. في حالة عدم وجود "file.txt" ، يحدث استثناء ولكن بدلاً من حدوث خطأ أثناء إيقاف البرنامج ، فسيتم طباعة "عذرًا ، هذا الملف غير موجود".
2. التعامل مع إدخالات المستخدم مع المحاولة باستثناء
يعد إدخال المستخدم مجالًا آخر تحدث فيه الاستثناءات غالبًا. يمكن للمستخدمين تقديم بيانات بتنسيق غير متوقع ، أو تقديم إدخال خارج النطاق المقبول.
يوضح المثال التالي كيفية التعامل مع إدخال المستخدم باستخدام كتلة try-except:
try: age = int(input("Enter your age: ")) except ValueError: print("That's not a valid age. Please enter a number.")
في هذا الكود ، نطلب من المستخدم إدخال عمره. إذا أدخلوا شيئًا لا يمكن تحويله إلى عدد صحيح (مثل كلمة أو حرف) ، فسيحدث استثناء ولكن بدلاً من تعطل البرنامج ، سيطبع "هذا ليس عمرًا صالحًا". الرجاء إدخال رقم.'
3. الوصول إلى مفاتيح القاموس غير الموجودة
في Python ، القاموس عبارة عن مجموعة قابلة للتغيير وغير مرتبة من أزواج المفتاح والقيمة ، حيث يجب أن يكون كل مفتاح فريدًا.
عندما تحاول الوصول إلى مفتاح غير موجود في القاموس ، فإن Python تثير خطأ KeyError. يمكنك استخدام المحاولة والاستثناء لمعالجة هذا الاستثناء كما هو موضح في المثال أدناه:
dictionary = {"key1": "value1", "key2": "value2"} try: print(dictionary["key3"]) except KeyError: print("The key does not exist in the dictionary.")
في هذا الرمز ، تحاول طباعة قيمة "key3" من القاموس. إذا لم يكن "key3" موجودًا في القاموس ، فسيحدث استثناء ولكن بدلاً من توقف البرنامج بسبب خطأ ، فسيتم طباعة "المفتاح غير موجود في القاموس."
4. تحويل سلسلة إلى عدد صحيح
قد تكون هناك أوقات تريد فيها تحويل سلسلة إلى عدد صحيح. ولكن إذا كانت السلسلة لا تمثل عددًا صحيحًا ، فإن Python سترفع قيمة ValueError.
يمكنك استخدام المحاولة والاستثناء للتعامل مع هذه الحالة:
try: num = int("hello") except ValueError: print("That string can't be converted to integer.")
في هذه الحالة ، لا يمكن تحويل "hello" إلى عدد صحيح ، لذا ترفع Python خطأ ValueError وتطبع "لا يمكن تحويل هذه السلسلة إلى عدد صحيح".
5. استيراد وحدة
عند استيراد وحدة نمطية في Python ، من المحتمل أن تكون الوحدة غير موجودة أو غير مثبتة. سترفع Python خطأ استيراد في مثل هذه الحالات.
للتعامل مع هذه الحالة ، يمكنك استخدام الكود التالي:
try: import some_module except ImportError: print("The module 'some_module' is not installed.")
في المثال أعلاه ، إذا لم يتم تثبيت "some_module" أو عدم وجوده ، سترفع Python خطأ ImportError وتطبع "الوحدة النمطية" some_module "غير مثبتة."
لمعرفة المزيد حول كتابة التعليمات البرمجية بلغة Python والتعامل مع التوقعات ، تحقق من الفيديو التالي:
بعد ذلك ، سننظر في بعض أفضل الممارسات للتعامل مع الاستثناءات. دعونا نتعمق في ذلك!
أفضل ممارسات معالجة الاستثناءات
في هذا القسم ، قمنا بإدراج بعض أفضل الممارسات للتعامل مع الاستثناءات باستخدام حظر "محاولة باستثناء". بعض أفضل الممارسات للتعامل مع الاستثناءات هي:
1. كن محددًا مع استثناءات
عندما تكتب الكود الخاص بك ، فإن اكتشاف الاستثناءات على وجه التحديد قدر الإمكان أمر بالغ الأهمية. هذا يعني أنه بدلاً من مجرد التقاط اسم استثناء عام ، يجب أن تلتقط النوع الفعلي من الاستثناء الذي تتوقعه.
بهذه الطريقة ، ستعرف بالضبط نوع الخطأ الذي حدث ، وستكون قادرًا على التعامل معه بشكل مناسب.
2. لا تقم بإلغاء الاستثناءات
عندما تتعامل مع استثناءات ، قد تميل إلى الإمساك بها فقط باستخدام معالج استثناء وعدم فعل أي شيء بها. هذه فكرة سيئة بشكل عام.
إذا حدث خطأ ، فعادةً ما يكون ذلك بسبب وجود شيء يحتاج إلى الإصلاح. إذا قمت بإيقاف فئة الاستثناء ، فقد يمر الخطأ دون أن يلاحظه أحد ويسبب مشاكل لاحقًا.
3. استخدم أخيرًا من أجل رمز التنظيف
في بعض الأحيان ، لديك بعض التعليمات البرمجية التي تحتاج إلى تشغيلها بغض النظر عما إذا حدث خطأ أم لا. قد يكون هذا شيئًا مثل إغلاق ملف أو تحرير بعض الموارد.
في هذه الحالات ، يمكنك استخدام الكتلة النهائية . سيتم تشغيل الكود الموجود داخل الكتلة النهائية بغض النظر عن أي شيء ، لذا فهو مكان رائع لوضع كود التنظيف الخاص بك.
try: # Some code here finally: # This code will run no matter what
4. رفع الاستثناءات عند الضرورة
قد تكون هناك مواقف تحتاج فيها إلى السماح لمستخدم التعليمات البرمجية الخاصة بك بمعرفة حدوث خطأ ما.
في هذه الحالات ، يمكنك رفع استثناء. سيؤدي هذا إلى إيقاف تنفيذ التعليمات البرمجية فورًا وإبلاغ المستخدم بحدوث خطأ.
if not valid_input: raise ValueError("Your input was not valid!")
إن فهم أفضل الممارسات وتنفيذها سيجعل شفرتك أكثر قوة ، وأسهل في تصحيح الأخطاء ، وتمنع الأعطال غير المتوقعة.
افكار اخيرة
لإنهاء الأمر ، فإن معرفة كيفية استخدام try and except in Python يساعد حقًا عندما تكتب الكود الخاص بك وتواجه استثناءات فيه.
سمحوا لبرنامجك بالتعامل مع الأخطاء بسلاسة ، بدلاً من التوقف فجأة. إنها طريقة للتأكد من أن الكود الخاص بك يمكنه التعامل مع المفاجآت والاستمرار.
بالإضافة إلى ذلك ، عند استخدام المحاولة والاستثناءات ، فهذا يُظهر أنك تفكر حقًا في الخطأ الذي يمكن أن يحدث وتستعد له. لذا خذ الوقت الكافي لتعلم هذه الأدوات - فهي مفيدة للغاية عند كتابة التعليمات البرمجية بلغة Python!
ما هي الذات في بايثون: أمثلة من العالم الحقيقي
ستتعلم كيفية حفظ وتحميل الكائنات من ملف .rds في R. ستغطي هذه المدونة أيضًا كيفية استيراد الكائنات من R إلى LuckyTemplates.
في هذا البرنامج التعليمي للغة ترميز DAX ، تعرف على كيفية استخدام وظيفة الإنشاء وكيفية تغيير عنوان القياس ديناميكيًا.
سيغطي هذا البرنامج التعليمي كيفية استخدام تقنية Multi Threaded Dynamic Visuals لإنشاء رؤى من تصورات البيانات الديناميكية في تقاريرك.
في هذه المقالة ، سأقوم بتشغيل سياق عامل التصفية. يعد سياق عامل التصفية أحد الموضوعات الرئيسية التي يجب على أي مستخدم LuckyTemplates التعرف عليها في البداية.
أريد أن أوضح كيف يمكن لخدمة تطبيقات LuckyTemplates عبر الإنترنت أن تساعد في إدارة التقارير والرؤى المختلفة التي تم إنشاؤها من مصادر مختلفة.
تعرف على كيفية إجراء تغييرات في هامش الربح باستخدام تقنيات مثل قياس التفرع والجمع بين صيغ DAX في LuckyTemplates.
سيناقش هذا البرنامج التعليمي أفكار تجسيد مخازن البيانات وكيفية تأثيرها على أداء DAX في توفير النتائج.
إذا كنت لا تزال تستخدم Excel حتى الآن ، فهذا هو أفضل وقت لبدء استخدام LuckyTemplates لاحتياجات إعداد تقارير الأعمال الخاصة بك.
ما هي بوابة LuckyTemplates؟ كل شيئ ترغب بمعرفته