البرمجة

حل مشكلة عدم ظهور إخراج Python في تيرمينال macOS

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

في الشيفرة الخاصة بك، تلاحظ أنك تستخدم sys.argv[0]، وهذا يمثل اسم البرنامج نفسه بدلاً من أي معلومات يمكن تمريرها كوسيط. عليك أن تستخدم sys.argv[1] بدلاً من ذلك للحصول على العنصر الأول في قائمة الوسائط، الذي يجب أن يكون اسم المستخدم الذي تريد إضافة العلامات التعجبية إليه.

علاوة على ذلك، هناك خطأ في شرط التحقق من __main__ في الشيفرة. يجب أن يكون __name__ == '__main__' بدلاً من __name__ == '___main___'. هذا يؤكد أن الشيفرة تعمل كبرنامج رئيسي عند تنفيذها، وهو شرط ضروري لضمان تنفيذ الشيفرة المناسبة.

الشيفرة المعدلة تبدو كما يلي:

python
#!/usr/bin/env python import sys def Hello(name): name = name + '!!!!' print('Hello', name) if __name__ == '__main__': if len(sys.argv) > 1: Hello(sys.argv[1]) else: print("Usage: python lesson1.py ")

الآن يجب أن يعمل البرنامج بشكل صحيح عند تنفيذه في نافذة التيرمينال باستخدام الأمر python lesson1.py aaaa.

المزيد من المعلومات

تعتبر المشكلة الرئيسية في الشيفرة الأصلية هي خطأ في شرط التحقق من __name__، بحيث أنه كان مكتوبًا على النحو التالي: if __name__ == '___main___':. يُفضل أن يكون الشرط الصحيح هو if __name__ == '__main__':، حيث يتم تحقق __name__ من القيمة __main__ للتأكد من أن الشيفرة تعمل كبرنامج رئيسي.

فيما يلي توضيح للتعديلات التي تم إجراؤها في الشيفرة:

  1. تصحيح شرط التحقق من __name__:

    python
    if __name__ == '__main__':
  2. تعديل في استدعاء دالة Hello:

    python
    Hello(sys.argv[1])
  3. إضافة تحقق للتحقق من وجود وسيط (sys.argv[1]):

    python
    if len(sys.argv) > 1:
  4. إضافة رسالة توجيهية في حالة عدم توفر وسيط:

    python
    else: print("Usage: python lesson1.py ")

بإجراء هذه التعديلات، يضمن الشرط الصحيح لـ __name__ تنفيذ الشيفرة الموجودة داخل الكتلة فقط عندما يتم تشغيل البرنامج مباشرة، وليس عند استيراد الشيفرة كوحدة في برنامج آخر.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر