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

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

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

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

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

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

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

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

some_var = 11

if some_var > 10:
    print("some_var is totally bigger than 10.")

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

some_var = 5

if some_var > 10:
    print("some_var is totally bigger than 10.")
elif some_var < 10:    # هذه الجملة اختيارية

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

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

some_var = 10

if some_var > 10:
    print("some_var is totally bigger than 10.")
elif some_var < 10:    # هذه الجملة اختيارية
    print("some_var is smaller than 10.")
else:                  # هذه الجملة اختيارية    
    print("some_var is indeed 10.")

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

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

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

for r in range(5):
	print(1)
	

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

for animal in ["dog", "cat", "mouse"]:

    # You can use format() to interpolate formatted strings

    print("{} is a mammal".format(animal))

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

for animal in ["dog", "cat", "mouse"]:

    # You can use format() to interpolate formatted strings
	if animal == 'cat':
		break
    print("{} is a mammal".format(animal))

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

for animal in ["dog", "cat", "mouse"]:

    # You can use format() to interpolate formatted strings
	if animal == 'cat':
		continue
    print("{} is a mammal".format(animal))

تعلم بايثون مباشرة عبر أداة trinket

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

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

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

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

d = {1:'a',2:'b',3:'c',4:'d'}

#المرور على مفاتيح القاموس
for k in d:
	print(k)
	
#طريقة أخرى للمرور على مفاتيح القاموس
for k in d.keys():
	print(k)
	
#المرور على المفاتيح والقيم
for k,v in d.items():
	print(k,v)
	
#المرور على قيم القاموس فقط
for v in d.values():
	print(v)

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

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

x = 0

while x < 4:

    print(x)
    x += 1  

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

i = 0

while i < 10:
	print(i)
	if i == 5:
		break
	i += 1
	
	
i = 0

while i < 10:
	if i == 3:
		i += 1
		continue

	print(i)

	if i == 5:
		break
	i += 1

تمرين بسيط

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