جُمل التحكم في بايثون – سلسلة بايثونات لتعلم لغة البايثون للمبتدئين

جمل التحكم في لغة بايثون - بايثونات

مرحبًا بكم في رابع مقالات سلسلة بايثونات لتعلم لغة البايثون، ويأتي هذا المقال ليتكلم عن جُمل التحكم في بايثون ومن خلاله سنتعرف على كيفية كتابة الجملة الشرطية في بايثون والحلقات التكرارية مثل for loop و while loop.

مقالات السلسلة:

  1. لغة بايثون للمبتدئين – سلسلة بايثونات لتعلم البايثون والانطلاق في عالم البرمجة.
  2. النصوص في بايثون.
  3. المتغيرات والتراكيب في بايثون.
  4. جُمل التحكم في بايثون.
  5. الدوال والوحدات بايثون.
  6. مُعالجة الأخطاء في بايثون.
  7. البرمجة الكائنية في بايثون.

جُمل التحكم في بايثون – الجُملة الشرطية if

جميع لغات البرمجة التي نعرفها تحتوي على تعبير خاص بالجملة الشرطية، وتكاد تتفق أغلب اللغات على الهيكل او الترتيب العام للجملة الشرطية والذي يكون if/else if/else. البايثون تحتوي على نفس الأمر. من المهم أن نذكر هنا أن بعض لغات البرمجة لديها شكل مشهور للجملة الشرطية وهو تعبير case/switch، ولكن لغة البرمجة البايثون لا تحتوي على هذا التعبير.

كل ما تقوم به الجُملة الشرطية هو أنها تفحص تحقق شرط ما، وبناءً على ذلك يتم تنفيذ شيفرة برمجية ما. المثال التالي يُوضح لنا كيفية كتابة الجُملة الشرطية والتي تُعتبر أحد جُمل التحكم في بايثون كما يلي:

[pastacode lang=”python” manual=”some_var%20%3D%2011%0A%0Aif%20some_var%20%3E%2010%3A%0A%C2%A0%C2%A0%C2%A0%20print(%22some_var%20is%20totally%20bigger%20than%2010.%22)%0A” message=”” highlight=”” provider=”manual”/]

المثال السابق يحتوي على جملة شرطية تفحص اذا كان المتغير المُسمى بـ some_var أن قيمته أكبر من 10 ام لا، واذا كان كذلك يتم طباعة الجملة some_var is totally bigger than 10. جميل، ولكن ماذا لو كانت قيمة المتغير أقل من 10؟ عندها يُمكننا اضافة جملة شرطية ثانية تتبع الأولى عن طريق تعبير elif كما يلي:

[pastacode lang=”python” manual=”some_var%20%3D%205%0A%0Aif%20some_var%20%3E%2010%3A%0A%C2%A0%C2%A0%C2%A0%20print(%22some_var%20is%20totally%20bigger%20than%2010.%22)%0Aelif%20some_var%20%3C%2010%3A%C2%A0%C2%A0%C2%A0%20%23%20%D9%87%D8%B0%D9%87%20%D8%A7%D9%84%D8%AC%D9%85%D9%84%D8%A9%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%D9%8A%D8%A9%0A” message=”” highlight=”” provider=”manual”/]

يُمكننا بالطبع اضافة أكثر من تعبير elif.

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

[pastacode lang=”python” manual=”some_var%20%3D%2010%0A%0Aif%20some_var%20%3E%2010%3A%0A%C2%A0%C2%A0%C2%A0%20print(%22some_var%20is%20totally%20bigger%20than%2010.%22)%0Aelif%20some_var%20%3C%2010%3A%C2%A0%C2%A0%C2%A0%20%23%20%D9%87%D8%B0%D9%87%20%D8%A7%D9%84%D8%AC%D9%85%D9%84%D8%A9%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%D9%8A%D8%A9%0A%C2%A0%C2%A0%C2%A0%20print(%22some_var%20is%20smaller%20than%2010.%22)%0Aelse%3A%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%C2%A0%20%23%20%D9%87%D8%B0%D9%87%20%D8%A7%D9%84%D8%AC%D9%85%D9%84%D8%A9%20%D8%A7%D8%AE%D8%AA%D9%8A%D8%A7%D8%B1%D9%8A%D8%A9%C2%A0%C2%A0%C2%A0%20%0A%20%20%20%20print(%22some_var%20is%20indeed%2010.%22)” message=”” highlight=”” provider=”manual”/]

جُمل التحكم في بايثون – جملة التكرار for loop

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

لو أردنا مثلًا تكرار طباعة رقم 1 خمسة مرات، يجب علينا الحصول على كائن iterable يحتوي على خمسة عناصر، وفي هذه الحالة يُمكننا الاستفادة من الدالة المُضمنة تلقائيًا في البايثون range التي تُعتبر iterable كما في المثال التالي:

[pastacode lang=”python” manual=”for%20r%20in%20range(5)%3A%0A%09print(1)%0A%09″ message=”” highlight=”” provider=”manual”/]

المثال التالي لحلقة تكرار هدفها المرور على عناصر قائمة ما وطباعة عناصرها، وبالطبع القائمة هنا أيضًا iterable:

[pastacode lang=”python” manual=”for%20animal%20in%20%5B%22dog%22%2C%20%22cat%22%2C%20%22mouse%22%5D%3A%0A%0A%C2%A0%C2%A0%C2%A0%20%23%20You%20can%20use%20format()%20to%20interpolate%20formatted%20strings%0A%0A%C2%A0%C2%A0%C2%A0%20print(%22%7B%7D%20is%20a%20mammal%22.format(animal))” message=”” highlight=”” provider=”manual”/]

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

[pastacode lang=”python” manual=”for%20animal%20in%20%5B%22dog%22%2C%20%22cat%22%2C%20%22mouse%22%5D%3A%0A%0A%C2%A0%C2%A0%C2%A0%20%23%20You%20can%20use%20format()%20to%20interpolate%20formatted%20strings%0A%09if%20animal%20%3D%3D%20’cat’%3A%0A%09%09break%0A%C2%A0%C2%A0%C2%A0%20print(%22%7B%7D%20is%20a%20mammal%22.format(animal))” message=”” highlight=”” provider=”manual”/]

في جانب آخر، قد نحتاج أن نتجاهل التكرار الحالي في حلقة التكرار. في المثال التالي نتجاهل قيمة cat ونُعدي عنها باستخدام تعبير continue:

[pastacode lang=”python” manual=”for%20animal%20in%20%5B%22dog%22%2C%20%22cat%22%2C%20%22mouse%22%5D%3A%0A%0A%C2%A0%C2%A0%C2%A0%20%23%20You%20can%20use%20format()%20to%20interpolate%20formatted%20strings%0A%09if%20animal%20%3D%3D%20’cat’%3A%0A%09%09continue%0A%C2%A0%C2%A0%C2%A0%20print(%22%7B%7D%20is%20a%20mammal%22.format(animal))” message=”” highlight=”” provider=”manual”/]

البيانات القابلة للمرور عليها باستخدام جملة التكرار

كما يُمكننا المرور على عناصر قائمة من خلال حلقة التكرار for، يُمكننا المرور على المتغيرات ذات الأنواع التالية:

  • القاموس dictionary
  • المجموعة set
  • tuple
  • متغير نصي string
  • الملفات files
  • المولدات generators

القائمة السابقة ليست حصرية، ويُمكننا بناء أنواع بيانات خاصة بنا تكون iterable وقابلة للاستخدام مع for loop. المثال التالي يُوضح كيفية المرور على عناصر قاموس بعدة طُرق:

[pastacode lang=”python” manual=”d%20%3D%20%7B1%3A’a’%2C2%3A’b’%2C3%3A’c’%2C4%3A’d’%7D%0A%0A%23%D8%A7%D9%84%D9%85%D8%B1%D9%88%D8%B1%20%D8%B9%D9%84%D9%89%20%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD%20%D8%A7%D9%84%D9%82%D8%A7%D9%85%D9%88%D8%B3%0Afor%20k%20in%20d%3A%0A%09print(k)%0A%09%0A%23%D8%B7%D8%B1%D9%8A%D9%82%D8%A9%20%D8%A3%D8%AE%D8%B1%D9%89%20%D9%84%D9%84%D9%85%D8%B1%D9%88%D8%B1%20%D8%B9%D9%84%D9%89%20%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD%20%D8%A7%D9%84%D9%82%D8%A7%D9%85%D9%88%D8%B3%0Afor%20k%20in%20d.keys()%3A%0A%09print(k)%0A%09%0A%23%D8%A7%D9%84%D9%85%D8%B1%D9%88%D8%B1%20%D8%B9%D9%84%D9%89%20%D8%A7%D9%84%D9%85%D9%81%D8%A7%D8%AA%D9%8A%D8%AD%20%D9%88%D8%A7%D9%84%D9%82%D9%8A%D9%85%0Afor%20k%2Cv%20in%20d.items()%3A%0A%09print(k%2Cv)%0A%09%0A%23%D8%A7%D9%84%D9%85%D8%B1%D9%88%D8%B1%20%D8%B9%D9%84%D9%89%20%D9%82%D9%8A%D9%85%20%D8%A7%D9%84%D9%82%D8%A7%D9%85%D9%88%D8%B3%20%D9%81%D9%82%D8%B7%0Afor%20v%20in%20d.values()%3A%0A%09print(v)%0A%0A” message=”” highlight=”” provider=”manual”/]

جُمل التحكم في بايثون – جملة التكرار while loop

نستخدم حلقة التكرار while لتكرار تنفيذ شيفرة برمجية، بنفس مفهوم جملة for ولكن الاختلاف هنا هو ان تكرار التنفيذ يستمر في  حالة تحقق شرط جملة التكرار، وليس كما في for التي تُنفذ الشيفرة البرمجية بمقدار مُحدد أو مُعين.

[pastacode lang=”python” manual=”x%20%3D%200%0A%0Awhile%20x%20%3C%204%3A%0A%0A%C2%A0%C2%A0%C2%A0%20print(x)%0A%C2%A0%C2%A0%C2%A0%20x%20%2B%3D%201%C2%A0%20″ message=”” highlight=”” provider=”manual”/]

يُمكننا استخدام كل من break  و continue مع جملة التكرار while كما هو الحال في for. الأمثلة التالية توضح ذلك:

[pastacode lang=”python” manual=”i%20%3D%200%0A%0Awhile%20i%20%3C%2010%3A%0A%09print(i)%0A%09if%20i%20%3D%3D%205%3A%0A%09%09break%0A%09i%20%2B%3D%201%0A%09%0A%09%0Ai%20%3D%200%0A%0Awhile%20i%20%3C%2010%3A%0A%09if%20i%20%3D%3D%203%3A%0A%09%09i%20%2B%3D%201%0A%09%09continue%0A%0A%09print(i)%0A%0A%09if%20i%20%3D%3D%205%3A%0A%09%09break%0A%09i%20%2B%3D%201″ message=”” highlight=”” provider=”manual”/]

تمرين بسيط

اكتب برنامج بايثون يطلب من المستخدم ادخال رقم ما، ويقوم البرنامج بطباعة قواسم divisors الخاصة بالرقم الذي ادخله المستخدم. في هذا التمرين ستستعين بالجملة الشرطية وجملة التكرار for loop. بذلك نكون قد شرحنا جُمل التحكم في بايثون، وكيف يُمكن التعامل معها. نتمنى أن نكون وُفقنا في إيصال المعلومة بالشكل الصحيح، ونسعد بأي ملاحظة في التعليقات. كما نتمنى منكم مشاركة مقالات السلسلة في منصات التواصل الاجتماعي مثل تويتر وفيسبوك حتى تعم الفائدة.

مقالات مشابهة

  • 7 طرق عليك تعلمها لتحسين اختبار البرمجيات

    7 طرق عليك تعلمها لتحسين اختبار البرمجيات

    هل تبحث عن طرق لتحسين اختبار البرمجيات وجعل تلك العملية أكثر كفاءةً وسرعةً مما
    ابراهيم البحيصي
    By ابراهيم البحيصي
    تعرف على المزيد
  • التعامل مع دوال بايثون - بايثونات

    المزخرفات في بايثون – كيف نتعامل مع دوال بايثون بحُرية أكثر

    المزخرفات في بايثون أو باللغة الانجليزية Decorators هي أحد أقوى وأجمل خصائص لغة البرمجة
    ابراهيم البحيصي
    By ابراهيم البحيصي
    تعرف على المزيد
  • كتابة كود بايثون اون لاين بطريقة سليمة - بايثونات

    البرمجة البايثونية – كيف تكتب شيفرة برمجية بالبايثون بطريقة سليمة

    البرمجة بطريقة بايثونية Pythonic Way هو مصطلح يُشير إلى طريقة كتابة الشيفرة البرمجية بالبايثون
    ابراهيم البحيصي
    By ابراهيم البحيصي
    تعرف على المزيد
  • تعلم بايثون خطوة بخطوة - البرمجة الكائنية - بايثونات

    البرمجة الكائنية في بايثون – سلسلة بايثونات لتعلم لغة البايثون

    أهلا وسهلًا بكم في آخر مقال من سلسلة بايثونات لتعلم البايثون والذي نتناول فيه
    ابراهيم البحيصي
    By ابراهيم البحيصي
    تعرف على المزيد

One Comment

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *