القائمة الرئيسية

الصفحات

تعلم بايثون - القسم الخامس

تعلم بايثون - القسم الخامس
سنقوم في هذا القسم بشرح الحلقات التكرارية وأنواعها بالتفصيل مع الأمثلة العملية بلغة بايثون.


تعلم بايثون - القسم الخامس 


الحلقات التكرارية في بايثون Python Loops

في بعض الأحيان نحتاج ألى تكرار عملية معينة عند تحقق شرط محدد في الكود البرمجي،أو نقوم بتعداد الأرقام على سبيل المثال عد الأرقام من 1 ألى 10 فليس من المنطقي كتابة أمر طباعة لكل رقم من هذه الأرقام مثلاً :
print(1)
print(2)
print(3)
.
.
.
.
.
بل نستخدم حلقة تكراريةloop لتعداد هذه الارقام لسهولة كتابة الكود وبأقل عدد سطور ممكنة.
في المخطط الأتي توضيح لطريقة عمل الحلقات التكرارية loops:

.هناك ثلاثة أنواع من الحلقات التكرارية loops في بايثون سنتكلم عن كل واحدة منها بالتفصيل

لنبدأ:

الحلقة التكرارية for loop:

تُستخدم لتكرار جزء معين من الكود عدة مرات،والأستخدام الشائع لها لتعداد الأرقام numbers
,الجمل string في القوائم lists , الصفوف tuples و القواميس Dictionaries
:الصيغة العامة لأداة الشرط for loop هي:
for iterating_var in sequence:  
    statement

في المخطط الآتي توضيح لطريقة عمل أداة الشرط  :for loop

والآن نأتي لبعض الأمثلة العملية لتوضيح عمل الحلقة التكرارية :for loop 

مثال1
 
list = [1, 2, 3, 4, 5, 6, 7]
for i in list:
 print(i)

out
1
2
3
4
5
6
7
شرح الكود
قمنا بأنشاء قائمة List تحتوي على الأعداد من 1 الى 7 وأستخدمنا for لعد هذه الأرقام بالتسلسل وثم طباعتها.


مثال2

number = 5
for i in range(1,13):
 print("%d X %d = %d"%(number,i,number*i))

out
5 X 1 = 5
5 X 2 = 10
5 X 3 = 15
5 X 4 = 20
5 X 5 = 25
5 X 6 = 30
5 X 7 = 35
5 X 8 = 40
5 X 9 = 45
5 X 10 = 50
5 X 11 = 55
5 X 12 = 60

شرح الكود:
قمنا بعمل جدول ضرب للعدد 5 باستخدامfor وطباعة الناتج.

الدالة range() تُستخدم لكتابة مجال معين للأعداد  فمثلاً في المثال أعلاه أستخدمنا range(1,13) يعني وضعنا المجال الذي نريده وهو تعداد للأرقام من 1 ألى 12 مع الأخذ بنظر الأعتبار أن أول رقم لايُحتسب في العد.

الحلقات التكرارية المتداخلة Nested for loop

وهي الحلقات التكرارية التي تعمل واحدة في داخل الأخرى،أي أن هناك حلقة تكرارية خارجية وفي داخلها حلقة تكرارية داخلية تقوم بعد تكرارات معينة لكل تكرار واحد من الحلقة الخارجية.

الصيغة العامة للحلقات التكرارية المتداخلةNested for loop  هي:

for iterating_1 in sequence:  
    for iterating_2 in sequence:  
        #block of statements   
#Other statements

    والآن نأتي الى مثال عملي يوضح كيفية عمل الحلقات التكرارية المتداخلة Nested for loop:
مثال
list1 = [1, 2, 3, 4]
list2 = [10, 15, 20, 25]
for i in list1:
 for j in list2:
  print(i*j)

out
10
15
20
25
20
30
40
50
30
45
60
75
40
60
80
100


شرح الكود:
قمنا بأنشاء قائمتان List1 و List2 بداخل كل منهما أربعة أرقام ونريد أن نقوم بضرب كل عنصر من القائمة الآولى في جميع العناصر في القائمة الثانية ومن ثم طبع الناتج.

الحلقة التكرارية while loop

تُستخدم الحلقة التكرارية while loop لتكرار جزء معين من الكود طالما هناك شرط متحقق ويكون هذا الشرط صحيح true،وتُستخدم في حالة لم يكن عدد التكرارات معلوم من البداية.

الصيغة العامة للحلقة التكرارية while loop هي:

while expression:  
    statements

وتكون الجمل statements في الصيغة العامة واحدة أو أكثر.ويجب أن يكون التعبير expression أي تعبير يؤدي الى قيمة صحيحة true أو قيمة خاطئة false.ويمكن أن تكون مقدار القيمة الصحيحة true أي عدد ماعدا صفر.
في المخطط الآتي توضيح لطريقة عمل while loop:

والان نأتي الى بعض الأمثلة العملية لتوضيح عمل الحلقة التكرارية while loop:

مثال1

i = 1
while i <= 5:
 print(i)
 i = i + 1

out
1
2
3
4
5
شرح الكود
قمنا بأنشاء برنامج لعد الأرقام من 1 الى 5  بأستخدام الحلقة التكرارية while loop

الحلقة التكرارية غير المنتهية infinite while loop 

أذا كان الشرط ألذي نضعه عند أستخدام الحلقة التكرارية while loop لن يصبح قيمة خاطئة false عندئذٍ الحلقة التكرارية لن تنتهي وستستمر الى مالانهاية.
أي قيمة غير الصفر في الحلقة التكرارية while loop ستكون هذه الحلقة غير منتهية.بينما عند وضع قيمة صفر سيُعتبر الشرط قيمة خاطئة false وستتوقف الحلقة التكرارية في الكود.

مثال

while (1):
    print("How Are You?")

شرح الكود
سيقوم البرنامج بطبع عبارة How Are You ى ما لانهاية والسبب في ذلك لأننا وضعنا قيمة للشرط في الحلقة التكرارية وهو 1.

عبارة التوقف break statement

وتُستخدم عند تحقق شرط معين true بداخل الحلقة التكرارية for loop أو while ليتم الخروج من الحلقة التكرارية،أي بمعنى سيتم كسر هذه الحلقة التكرارية وأيقاف تنفيذها ليتم تنفيذ السطر التالي في الكود البرمجي.
الصيغة العامة لعبارة التوقف break statement هي:

#loop statements  
break
والان نأتي لبعض الأمثلة العملية لتوضيح عمل عبارة التوقف break statement
مثال1

name = "Mohammed"
for i in name:
    if i == 'm':
        break
    print(i)

out
M
o
h
a

شرح الكود
قمنا بأنشاء عداد يقم بتعداد الحروف الموجودة في كلمة Mohammed،ولكن وضعنا شرط وهو عندما يصل العداد الى حرف m فأنه سيتوقف ويخرج عن الحلقة التكرارية.

مثال2

x = 0
while 1:
    x = x + 1
    print(x, "", end="")
    if x == 5:
        break
print('The End')

out
1 2 3 4 5 The End

شرح الكود
قمنا بأنشاء عداد بأستخدام while يقوم بعد الأرقام ،وتم وضع الشرط وهو أذا وصل العداد الى رقم خمسة سيقوم بكسر الحلقة التكرارية while والخروج منها ثم طباعة عبارة The End


وظيفة"" end= هي طباعة العناصر بشكل افقي.

عبارة الأستمرار continue statement

تُستخدم عبارة الأستمرار continue statement في بايثون عندما نريد التحكم مابداخل الحلقة التكرارية وأستمرار التكرار مالم يكن هناك شرط يوقفه، وتقوم عبارة الأستمرار بتجاوز الأسطر في الكود البرمجي وتستمر بتنفيذ عمل الحلقة التكرارية(نوعاً ما صعب أستيعاب التوضيح لكن من خلال الأمثلة سيتم فهمها وأستيعابها بالكامل).

الصيغة العاملة لعبارة الأستمرار continue statement هي:

#loop statements  
continue  
#the code to be skipped 

والآن نأتي لمثال عملي لتوضيح عمل عبارة الأستمرار continue statement:
مثال
x = 0
while x!=10:
    print(x)
    continue
    x=x+1

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

عبارة التمرير pass statement

تُستخدم عبارة التمرير pass statement ببساطة عندما لانريد تنفيذ شرط،يعني لو أردنا كتابة شرط لكن بدون أن ينفذ هذا الشرط أي شي لايمكننا تركه فارغاً،بل يجب وضع عبارة pass لكي لايُحدث خطأ في تنفيذ البرنامج.
الصيغة العامة لعبارة التمرير pass statement هي:
والان نأتي لمثال بسيط يوضح عمل عبارة التمريرpass statement:

مثال
list = [1, 2, 3, 4, 5, 6]
for x in list:
    if x ==2:
        pass
    print(x)


out

1
2
3
4
5
6
شرح الكود
قمنا بأنشاء قائمة List ووضعنا فيها مجموعة من الأعداد،قمنا بعمل عداد بواسطة for loop ليقوم بعد هذه الأرقام،ووضعنا بداخل هذه الحلقة التكرارية شرط ولكن لانريد تنفيذ شيء داخل هذه الشرط لذلك قمنا بوضع عبارة pass لكي يعمل الكود بصورة سليمة.


إلى هنا ينتهي القسم الخامس من سلسلة كورس (تعلم بايثون) أتمنى أن ينال حسن رضاكم ونلتقيكم في القسم السادس أن شاء الله.



م.م رسول حسن 



هل اعجبك الموضوع :

تعليقات