البرمجة

تعطل تشغيل برنامج Python: حلول وتحسينات

عندما تحاول تشغيل البرنامج، تواجه صعوبة في تشغيله وتواجه رسالة “None” بدون وجود أي رسالة خطأ ولا تستطيع التعرف على سبب المشكلة بسبب عدم معرفتك الكافية بلغة Python. في هذا السياق، دعني أقدم لك شرحاً مفصلاً حول مشكلتك.

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

مشكلتك الأساسية هي أن الدالة re_start() لا تُستدعى بشكل صحيح. هذه الدالة تهدف إلى إعادة تشغيل البرنامج في حالة إدخال لون غير صحيح. ومع ذلك، لم يتم استدعاء هذه الدالة بشكل مناسب بعد طباعة الرسالة “Invalid colour…”، مما يجعل البرنامج ينتهي بدون عملية إعادة التشغيل المطلوبة.

لحل هذه المشكلة، يمكنك استدعاء الدالة re_start() بشكل صحيح بعد طباعة الرسالة المناسبة. يجب عليك استبدال السطر re_start() في دالة read_colour() بـ return re_start()، وهذا سيعيد تشغيل البرنامج بشكل صحيح بعد طباعة رسالة اللون غير الصحيح.

بعد التعديلات، يجب أن تبدو دالة read_colour() بهذا الشكل:

python
def read_colour(): """prompt user for a colour letter if invalid colour enter retry""" ALLOWED_COLOURS = ["whero", "kowhai", "kikorangi", "parauri", "kiwikiwi", "karaka", "waiporoporo", "pango"] PROMPT_COLOUR = input("Enter letter colour: ").casefold() if PROMPT_COLOUR in ALLOWED_COLOURS: return read_names() else: print("Invalid colour...") print(*ALLOWED_COLOURS, sep='\n') return re_start()

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

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

بالطبع، دعني أوسع شرحي لتسليط الضوء على بعض النقاط الأساسية في الكود وكيفية تحسينه.

تبدأ المشكلة التي واجهتك في تشغيل البرنامج ببساطة بسبب عدم استدعاء الدالة re_start() بشكل صحيح. هذه الدالة مسؤولة عن إعادة تشغيل البرنامج في حالة إدخال لون غير صحيح. ومن الواضح أنها لم تُستدعى بشكل مناسب بعد طباعة الرسالة “Invalid colour…”، مما يتسبب في انتهاء البرنامج دون تكرار التشغيل كما هو متوقع.

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

بعد هذه التعديلات، أصبحت دالة read_colour() تبدو كما يلي:

python
def read_colour(): """prompt user for a colour letter if invalid colour enter retry""" ALLOWED_COLOURS = ["whero", "kowhai", "kikorangi", "parauri", "kiwikiwi", "karaka", "waiporoporo", "pango"] PROMPT_COLOUR = input("Enter letter colour: ").casefold() if PROMPT_COLOUR in ALLOWED_COLOURS: return read_names() else: print("Invalid colour...") print(*ALLOWED_COLOURS, sep='\n') return re_start()

الآن، ينبغي أن يعمل البرنامج بشكل صحيح دون أي مشكلات في تكرار التشغيل عند إدخال لون غير صالح. ولكن قبل تسليم الحل النهائي، يمكننا إجراء بعض التحسينات على الكود لجعله أكثر فعالية وسهولة في الاستخدام.

على سبيل المثال، يمكن تحسين دالة read_names() بإضافة تعليقات توضيحية أو رسائل للمستخدم لزيادة وضوحية البرنامج. كذلك، يمكن استخدام حلقة تكرارية لتمكين المستخدم من إعادة إدخال الأسماء بشكلٍ متكرر حتى يكتمل الإدخال.

باختصار، من خلال فهم وتحليل الأخطاء والتعديلات اللازمة في الكود، يمكنك الآن تشغيل البرنامج بنجاح والاستفادة من تجربة البرمجة بلغة Python. وفي حالة وجود أي استفسارات إضافية أو طلبات للتوسع في الموضوع، فإنني هنا للمساعدة دائماً.

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

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

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

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