/Python: Part(6)

Python: Part(6)

في المرة السابقة تحدثنا عن ال(Dictionaries) وتطرقنا الى أهم الدوال المستخدمة فيه .. وهكذا نكون قد انتهينا من التعرف على مبادئ التعامل مع لغة البايثون . في هذا العدد ان شاء الله سوف ننتقل الى مرحلة اخرى لنتحدث عن نقاط  يجب على المبرمج اﻹلمام بها قبل البدء في العمل .

Conditionals, Loops, and Some Other Statements

Blocks:

لغة البايثون تعتمد على استخدام ال(blocks). وال(Block) عبارة عن مجموعة من الجمل التي يمكن تنفيذها إذا كان الشرط صحيحا (الجمل الشرطية) ، أو تنفيذها عدة مرات (loop) ،ويتم إنشاءال(block) عن طريق وضع مسافة بادئة في بداية السطر ،والمثال التالي يشرح كيفية عمل ذلك :


Conditions and Conditional Statements :

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

القيم التالية ينظر اليها المترجم او ال(interpreter) على انها (False) وهذا عندما يقيمها من الناحية المنطقية :

False , None , 0 ,“” , () , [] and {}

وهذا يعني ان ال(interpreter) يقوم بترجمة هذه الرموز والكلمات فقط الى (False) ، وما عدا ذلك يقوم بترجمته على انه (True) . ويجب الاخذ في الاعتبار ان قيمة False تساوي 0 ، وقيمة True تساوي 1 :

في المثال السابق يتضح انه يمكن استخدام ناتج القيم المنطقية في العمليات الحسابية ،حيث انه قام بجمع الرقم 42 والقيمة الرقمية ل(True) والتي تساوي 1 ، مع القيمة الرقمية ل(False) والتي تساوي 0 ، وهذا يعني انه تلقائيا قام  ال(interpreter) بتحويل القيم ال(bool) الى القيم الرقمية المقابلة لها كي يتمكن من استخدامها في العمليات الحسابية اذا تطلب الامر  .

 

كما ذكرنا ان القيم المنطقية (True و False) تنتمي إلى نوع(bool) ، والمثال التالي يشرح كيف يقوم ال(interpreter) بترجمة ال(Strings) الىقيم (True or False)

دعونا الان ننظر كيف تعمل الجمل الشرطية في البايثون ، والمثال التالي هو شرح لجملة (if) الشرطية والتي تعمل بالطريقة التالية :

اذا كان جواب الشرط صحيح او متوافق مع الشرط المعرف مسبقا من قبل المبرمج ، يقوم البرنامج بتنفيذ ال(Block) الذي يلي جملة الشرط .

اما اذا كان جواب الشرط غير صحيح بمعنى انه غير متوافق مع الشرط الذي يريده المبرمج ، في هذه الحالة لن يقوم البرنامج بتنفيذ ال(Block)

ولكن في بعض الاحيان يتطلب الامر ان يكون هناك اكثر من احتمال واحد في الجملة الشرطية مما يتطلب استخدام (else)

وهذا نفس المثال ولكن مع استخدام (else) :

في المثال السابق يقوم المستخدم بادخال الاسم . فإذا كان الاسم المدخل ينتهي  ب(‘Gumby‘) سيقوم البرنامج بطباعة ‘Hello, Mr. Gumby’

وفي حالة انه لم ينتهي بهذه الكلمة يقوم البرنامج بطباعة ‘Hello, stranger‘ ، وهكذا يمكن استخدام (else) لمزيد من المرونة في الجمل الشرطية.

 

كما يوجد ايضا في البايثون جملة شرطية تسمى (elif) والتي تشير الى(else if) وهذا يعني انه يمكن وضع اكثر من شرط في الجملة الشرطية الواحدة ، فإذا لم يتحقق الشرط الاول ينظر المترجم الى الشرط الثاني واذا لم يتحقق الشرط الثاني يقوم المترجم بالنظر في الشرط الثالث ، وهكذا . وهذا مثال يوضح كيفية عمل جملة (elif) الشرطية

وهذا البنامج يبدا عندما يدخل المستخدم رقما ، ثم يقوم البرنامج بالعمليات الشرطية ،فإذا كان الرقم اكبر من الصفر سوف يقوم البرنامج بطباعة ‘The number is positive‘ . واذا كان اقل من الصفر يقوم بطباعة ‘The number is negative‘ ،فيما عدا ذلك – اي ان الرقم مساوي للصفر –  يقوم البرنامج بطباعة ‘The number is zero‘ .

Nesting Blocks :

يمكن ايضا وضع جملة (if)  بداخل جملة (if) اخرى على النحو التالي :

هكذا قمنا بتوضيح كيفية التعامل مع جملة (if) الشرطية بشكل مبدئي ، وفيما يلي مقارنة بين العمليات المنطقية التي يمكن  استخدامها في الجمل الشرطية في البايثون :

في المرة القادمة ان شاء الله سوف نستكمل الحديث بشكل تفصيلي عن الجمل الشرطية وال(loops) في البايثون … تابعونا 🙂