تدفق التحكم في بايثون
توضح هذه المقالة تدفق التحكم في بايثون۔
YouTube Video
عبارة if
في بايثون
عبارة if
في بايثون هي صيغة للتفرع الشرطي۔ تُستخدم لتنفيذ كتلة من الأكواد إذا تحقق شرط معين وأعطى القيمة True
(صحيح)۔
الصياغة الأساسية
عبارة if
في بايثون تتبع بشكل أساسي البنية التالية۔
1x = 10
2
3if x > 5: # Check if the condition(x > 5) is True
4 # If the condition is True, execute this code block
5 print("x is greater than 5")
في هذا المثال، سيتم طباعة "x is greater than 5"
إذا كانت قيمة المتغير x
أكبر من 5۔
عبارة else
استخدام else
بعد عبارة if
يتيح لك تحديد الأكواد التي سيتم تنفيذها عندما يكون الشرط غير صحيح۔
1x = 3
2
3if x > 5:
4 print("x is greater than 5")
5else:
6 print("x is less than or equal to 5")
في هذا المثال، ستكون النتيجة "x is less than or equal to 5"
۔
عبارة elif
إذا كنت بحاجة للتحقق من شروط متعددة، يمكنك استخدام elif
، التي تعني "else if"۔
1x = 5
2
3if x > 5:
4 print("x is greater than 5")
5elif x == 5:
6 print("x is equal to 5")
7else:
8 print("x is less than 5")
في هذا المثال، يتم طباعة "x is equal to 5"
۔
ملاحظات
- يجب وضع نقطة مزدوجة (
:
) بعدif
، أوelif
، أوelse
۔ - يجب أن تكون كتلة الأكواد التي يتم تنفيذها عند تحقق الشرط متداخلة (indented)۔ في بايثون، يكون المسافة البادئة القياسية عادة 4 مسافات، لكن يمكن استخدام أعداد أخرى من المسافات طالما أنك تلتزم بالاتساق۔
- يمكنك استخدام أي تعبير يعيد قيمة منطقية (boolean) كشرط۔ هذا يعني أنه يمكنك استخدام تعبيرات شرطية مدمجة مع عوامل مقارنة أو عوامل منطقية۔
إتقان عبارة if
في بايثون يتيح لك التحكم بمرونة في تدفق تنفيذ البرنامج۔
التفرع الشرطي المتعدد في بايثون
هناك عدة طرق لتنفيذ وظيفة تشبه switch
في بايثون، على غرار ما هو موجود في لغات البرمجة الأخرى۔ في بايثون، من الشائع استخدام عبارات if-elif-else
أو القواميس (dictionaries) لإنشاء بنى مشابهة لعبارة switch
۔
الطريقة 1: بيان if-elif-else
أبسط طريقة هي استخدام بيان if-elif-else
للتفرع الشرطي۔
1def switch_example(value):
2 if value == 1:
3 return "Value is one"
4 elif value == 2:
5 return "Value is two"
6 elif value == 3:
7 return "Value is three"
8 else:
9 return "Unknown value"
10
11print(switch_example(1)) # Output: Value is one
12print(switch_example(4)) # Output: Unknown value
الطريقة 2: استخدام القواميس
عن طريق ربط الدوال أو القيم بقاموس، يمكن إنشاء بنية تشبه بيان switch
۔ هذا مفيد عندما ترغب في تنفيذ عمليات مختلفة لقيم محددة۔
1def case_one():
2 return "Value is one"
3
4def case_two():
5 return "Value is two"
6
7def case_default():
8 return "Unknown value"
9
10def switch_example(value):
11 switch_dict = {
12 1: case_one,
13 2: case_two
14 }
15
16 # Use get() method to retrieve the corresponding function from the dictionary
17 # If the value is not found in the dictionary, use case_default as a fallback
18 return switch_dict.get(value, case_default)()
19
20print(switch_example(1)) # Output: Value is one
21print(switch_example(3)) # Output: Unknown value
الطريقة 3: بيان match
(بايثون 3.10 والإصدارات الأحدث)
تم تقديم بيان match
في بايثون 3.10۔ إنها صياغة مطابقة الأنماط التي توفر وظيفة مشابهة لبيان switch
۔
1def switch_example(value):
2 match value:
3 case 1:
4 return "Value is one"
5 case 2:
6 return "Value is two"
7 case 3:
8 return "Value is three"
9 case _:
10 return "Unknown value"
11
12print(switch_example(1)) # Output: Value is one
13print(switch_example(4)) # Output: Unknown value
الملخص
- بيان
if-elif-else
: بسيط وقابل للتكيف مع العديد من الحالات۔ - القواميس: استخدم ربط الدوال أو القيم لتمكين عملية تفرع فعالة۔
- بيان
match
: يسمح بتفرع أكثر وضوحًا في بايثون 3.10 والإصدارات الأحدث۔ الأقرب إلى بيانswitch
۔
حلقات for
في بايثون
يتم استخدام عبارة for
في بايثون للتكرار عبر كل عنصر من كائن قابل للتكرار مثل القائمة، أو السلسلة النصية، أو القاموس۔ الصيغة الأساسية لبيان for
هي كالتالي:۔
1# Loop through each item in the iterable
2for variable in iterable:
3 # Execute this block of code for each item in the iterable
4 code_to_execute
فيما يلي بعض الأمثلة المحددة:۔
مثال باستخدام قائمة
1fruits = ["apple", "banana", "cherry"]
2for fruit in fruits:
3 print(fruit)
يستدعي هذا الكود دالة print
لكل عنصر في القائمة fruits
، مما ينتج اسم كل فاكهة۔
مثال باستخدام range()
تُنتج دالة range()
الأعداد الصحيحة داخل نطاق محدد، مما يجعلها مفيدة للتكرارات الرقمية۔
1for i in range(5):
2 print(i)
range(5)
تُنتج الأعداد الصحيحة من 0 إلى 4۔ في هذه الحالة، سيتم إخراج 0, 1, 2, 3, 4
بالتتابع۔
مثال باستخدام قاموس
في حالة القواميس، يتم التكرار على المفاتيح افتراضيًا، ولكن يمكنك أيضًا استخراج أزواج المفتاح والقيمة۔
1person = {"name": "Alice", "age": 25}
2for key in person:
3 print(key, person[key])
أو يمكنك استخدام طريقة items()
لاسترجاع المفاتيح والقيم في نفس الوقت.۔
1person = {"name": "Alice", "age": 25}
2for key, value in person.items():
3 print(key, value)
الحلقة المتداخلة for
من الممكن أيضًا تداخل حلقات for
لتنفيذ عمليات تكرار معقدة.۔
1matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
2for row in matrix:
3 for num in row:
4 print(num)
يقوم هذا الكود بالتكرار عبر كل صف في القائمة matrix
ويعرض الأرقام الموجودة في كل صف على التوالي.۔
continue
لتخطي تكرار وbreak
لإنهاء الحلقة.
استخدام continue
داخل حلقة for
سيتخطى التكرار الحالي وينتقل إلى التالي.۔ بالإضافة إلى ذلك، فإن استخدام break
سينهي الحلقة تمامًا.۔
1for i in range(10):
2 if i == 5:
3 continue
4 if i == 8:
5 break
6 print(i)
في هذا المثال، الحلقة تتخطى التكرار عندما تكون قيمة i
تساوي 5 وتنتهي عندما تكون i
تساوي 8.۔ لذلك، ستكون النتيجة 0, 1, 2, 3, 4, 6, 7
.۔
حلقة for
في بايثون مرنة للغاية ويمكن استخدامها في مجموعة متنوعة من السيناريوهات۔ اعتمادًا على نوع المعالجة التكرارية التي ترغب في تنفيذها، يمكن استخدامها جنبًا إلى جنب مع القوائم والقواميس والنصوص وسلسلة range()
۔
الحلقة while
في بايثون
في بايثون، تعتبر الحلقة while
هي بنية تحكم تُستخدم لتنفيذ الكود داخل الكتلة بشكل متكرر طالما أن الشرط يبقى True
.۔ الصيغة الأساسية لحلقة while
هي كالتالي:۔
1while condition:
2 # This block of code will be executed repeatedly as long as the condition is true
3 statement1
4 statement2
5 ...
مثال:
في المثال التالي، يتم استخدام حلقة while
لإخراج الأرقام من 1 إلى 5.۔
1i = 1
2while i <= 5:
3 print(i)
4 i += 1
يعمل هذا الكود على النحو التالي۔
- ابدأ بـ
i
كـ 1، واطبعi
طالما أنها أقل من أو تساوي 5، وزد قيمةi
بمقدار 1 في كل مرة۔
ملاحظة:
يجب أن تضع النقاط التالية في اعتبارك عند استخدام عبارة while
۔
-
احذر من الحلقات اللانهائية
- إذا كان الشرط في حلقة
while
دائمًا صحيحًا (True
)، فسوف يؤدي ذلك إلى حلقة لانهائية۔ يجب تنفيذ عمليات ملائمة لتغيير الشرط؛ وإلا فلن يتوقف البرنامج.۔
- إذا كان الشرط في حلقة
-
استخدام
break
وcontinue
:- يُستخدم
break
عندما تريد الخروج من الحلقة قبل انتهائها۔ - يقوم
continue
بتجاوز التكرار الحالي ويبدأ التكرار التالي۔ كن حذرًا، فقد يؤدي وجود شروط غير صحيحة في الحلقة إلى حلقة لانهائية۔
- يُستخدم
مثال على break
:
1i = 1
2while i <= 5:
3 if i == 3:
4 break # Exit the loop when i becomes 3
5 print(i)
6 i += 1
- في هذه الحالة، بعد طباعة الأرقام
1
و2
، تنتهي الحلقة عندما تصبح قيمةi
تساوي3
۔
مثال على continue
:
1i = 0
2while i < 5:
3 i += 1
4 if i == 3:
5 # Skip the print statement and move to the next loop iteration when i is 3
6 continue
7 print(i)
- في هذه الحالة، يتم تخطي الطباعة فقط عند القيمة
3
، مما ينتج عنه1, 2, 4, 5
۔ - عن طريق زيادة قيمة
i
في بداية الحلقة، يتقدم العداد حتى في حال تنفيذcontinue
، مما يمنع حدوث حلقة لانهائية۔
يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔