You are on page 1of 9

‫الدرس السابع‪ :‬الجمل الشرطية‬

‫كما في كل لغات البرمجة‪ ،‬فأن لغة بايثون تتعامل مع الشروط بشكل ممتاز وباستخدام عبارة (‪ )if‬وبالصيغة التالية‪:‬‬

‫‪If condition:‬‬

‫‪Statements‬‬

‫‪Or:‬‬

‫‪If condition:‬‬

‫‪Statements‬‬

‫‪Else:‬‬

‫‪Statements‬‬

‫وكما يعرف الجميع فأن العبارات (‪ )statements‬ال تنفذ اال إذا كان الشرط (‪ )condition‬صحيحا ً واما إذا كان الشرط خطأ‬
‫فيتم القفز مباشرة الى العبارات بعد بلوك ال (‪ )if‬وكما في التوضيح التالي‪:‬‬

‫وكمثال على ذلك الحظوا البرنامج التالي‪:‬‬


‫ونالحظ هنا ان الشرط بجانب ال (‪ )if‬وهو (‪ )x>3‬صحيح فتم تنفيذ كل العبارات داخل بلوك ال (‪ )if‬واما لتمييز العبارات‬
‫التابعة لل (‪ )if‬فبخالف لغات البرمجة األخرى‪ ،‬ال تستخدم بايثون االقواس وانما المسافات (‪ )indents‬لتمييز العبارات التابعة‬
‫لل (‪ )if‬ولغيرها من عبارات الشروط والتكرار التي سنتحدث عنها الحقاً‪ .‬واما ألنهاء بلوك ال(‪ )if‬او ال (‪ )else‬او أي شيء‬
‫غيرها فنقوم فقط بإرجاع مؤشر الطباعة الى بداية السطر او بمحاذاة الدالة السابقة لنعطي للبايثون رسالة تفيد بأن البلوك‬
‫الحالي انتهى‪ .‬وقبل الخوض في بقية تفاصيل استخدام عبارة (‪ )if‬ال بد من التذكير بعبارات المقارنة المنطقية التي يمكن‬
‫استخدامها مع عبارة (‪ )if‬وهي كما يلي‪:‬‬

‫وكمثال لدور المسافات (‪ )indents‬في التفريق بين بلوك واخر الحظ الصورة التالية‪:‬‬
‫حيث نالحظ ان كل لون مختلف هو بلوك يتميز عن بقية البلوكات وبعضها يجتمع بسطر واحد وبعضها بعدة أسطر‪.‬‬

‫كما يعرف المبرمجون ببقية لغات البرمجة‪ ،‬فأن عبارة (‪ )if‬تحتوي الكثير من الخيارات والمميزات ومنها انها يمكن ان‬
‫تستخدم في التنفيذ بمسار واحد او بعدة مسارات وبحسب نوعية استخدامها وكما في التفصيل ادناه‪:‬‬

‫حيث يتضح من المثال أعاله ان هناك شرط واحد للتنفيذ اما ان يكون صحيح فيتم التنفيذ واما ان يكون خطأ فيقفز المفسر الى‬
‫ما بعد بلوك (‪ )if‬لتنفيذه‪.‬‬
‫مالحظة‪ :‬كما ذكرنا سابقا ً فأن المسافات (‪ )indents‬تعمل بدل االقواس لفصل بلوك (‪ )if‬عن بقية مكونات البرنامج وهنا‬
‫يجب االنتباه الى استخدام زر (‪ )space‬من لوحة المفاتيح أربع مرات واالبتعاد كليا ً عن استخدام (‪ )tab‬ألنه يعطي رسالة‬
‫خطأ دوما ً حيث يعتبر ال (‪ )tab‬رمزاً غير مفهوم للغة بايثون فيجب الحذر‪.‬‬

‫ولمزيد من التوضيح حول المسافات ودورها في تحديد مسار التنفيذ الحظ األمثلة التالية‪:‬‬

‫ولتوضيح البلوكات المتداخلة نضعها بألوان مختلفة هنا‪:‬‬


‫الحظ عدم وجود اقواس وانما مسافات فقط‪.‬‬

‫كما في الصورة السابقة نرى ان عبارة (‪ )if‬تستخدم بشكل متشعب ( ‪ if‬بداخل ‪ ) if‬وتسمى باصطالح البرمجة (‪)nested if‬‬
‫وتعني انه ان كان الشرط األول صحيح فقم بالدخول الى البلوك الخاص به لتجد شرطا ً اخر‪ ،‬فأن كان هذا الشرط صحيح ايضا ً‬
‫يقوم المفسر بالدخول الى داخل البلوك الخاص به واال فال‪ .‬وهكذا؟‬
‫يمكن في هذه الحاالت استخدام (‪ )else‬او (‪ )elif = else if‬وبحسب الحاجة وكما في ادناه‪:‬‬

‫ويمكن ان يكون التنفيذ متعدد المسارات وكما في ادناه‪:‬‬


‫ويمكن تنفيذ الكود أعاله بعدة طرق اعتماداً على قيمة (‪ )x‬وكما في ادناه‪:‬‬

‫حيث ينفذ الجزء البرتقالي فقط ألن قيمة (‪ )x‬تساوي صفر‪.‬‬


‫وهنا تنفذ األجزاء البرتقالية ألن قيمة (‪ )x‬تساوي ‪5‬‬

‫واخيراً لقيمة (‪ )x‬تساوي ‪ 02‬نرى التنفيذ التالي‪:‬‬

‫الحظ ايضاً‪:‬‬
‫واخيراً يمكن كتابة كودات برامج تحتوي على أسطر ال تنفذ ابداً وكما في الصورة التالية‪:‬‬

‫هذا السؤال سيبقى كواجب بيتي لكم احبتي وسنتطرق لحله في المحاضرة القادمة ان شاء هللا‪.‬‬

‫أتمنى ان يكون شرح اليوم مفيداً لكم وال تقلقوا من قلة األمثلة فالدرس القادم سيكون مليئا ً بها ان شاء هللا وسيكون عن‬
‫عبارات الشرط ايضاً‪ .‬كالعادة‪ ،‬ننتظر تفاعلكم واسئلتكم والمشاركة في النشر لتعميم الفائدة‪.‬‬

You might also like