أساسيات بايثون 12: شرح Loops في Python للمبتدئين

مرحبًا بك في الدرس الثاني عشر من سلسلة أساسيات بايثون على موقع بايثون العرب.

{getToc} $title={محتوى المقال}

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

أما في هذا الدرس فسنتعلم مفهومًا مهمًا جدًا في البرمجة، وهو:

Loops أو بالعربية: الحلقات / التكرار.

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

{alertInfo} إذا كنت تريد كتابة نفس الأمر أكثر من مرة، فغالبًا تحتاج إلى Loop بدل تكرار الكود يدويًا.

إذا لم تقرأ درس الشروط، أنصحك بمراجعته أولًا لأنه يرتبط كثيرًا بهذا الدرس: أساسيات بايثون 11: شرح if و else في Python للمبتدئين.

ما معنى Loop في البرمجة؟

كلمة Loop تعني حلقة أو تكرار.

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

مثلاً بدل أن تكتب:

print("مرحبا")
print("مرحبا")
print("مرحبا")

يمكنك استخدام حلقة تكرر الأمر:

for i in range(3):
    print("مرحبا")

والنتيجة ستكون نفس الشيء، لكن الكود أصبح أقصر وأفضل.

أنواع Loops في Python

في بايثون يوجد نوعان أساسيان من الحلقات:

  • for loop
  • while loop

كل نوع له استخدامه، وسنتعلم الاثنين في هذا الدرس.

نوع الحلقة متى نستخدمها؟
for عندما تريد التكرار على عناصر موجودة، مثل قائمة أو نص أو range.
while عندما تريد استمرار التكرار طالما أن شرطًا معينًا صحيح.

شرح for loop في Python

نستخدم for عندما نريد المرور على مجموعة عناصر.

الشكل العام:

for item in collection:
    # code to repeat

مثال بسيط:

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:
    print(fruit)

الناتج:

apple
banana
cherry

هنا الحلقة مرت على كل عنصر داخل القائمة وطبعت العنصر.

شرح الكود خطوة بخطوة

في البداية أنشأنا قائمة:

fruits = ["apple", "banana", "cherry"]

ثم كتبنا الحلقة:

for fruit in fruits:

معناها: خذ كل عنصر من قائمة fruits وضعه مؤقتًا داخل المتغير fruit.

ثم نفذ:

print(fruit)

لكل عنصر في القائمة.

{alertInfo} اسم المتغير داخل for يمكن أن يكون أي اسم، لكن الأفضل أن يكون واضحًا مثل fruit عند المرور على fruits.

استخدام for مع النصوص

يمكنك استخدام for مع النصوص أيضًا، لأن النص يتكون من أحرف.

for letter in "Python":
    print(letter)

الناتج:

P
y
t
h
o
n

الحلقة هنا مرت على كل حرف داخل كلمة Python.

استخدام range في Python

الدالة range() تستخدم لإنشاء تسلسل من الأرقام.

مثال:

for i in range(5):
    print(i)

الناتج:

0
1
2
3
4

لاحظ أن range(5) تبدأ من 0 وتنتهي قبل 5.

{alertWarning} انتبه: range(5) لا تطبع الرقم 5، بل تتوقف عند 4 لأن البداية تكون من 0.

تحديد البداية والنهاية في range

يمكنك تحديد رقم البداية ورقم النهاية:

for i in range(1, 6):
    print(i)

الناتج:

1
2
3
4
5

هنا بدأنا من 1 وانتهينا قبل 6.

تحديد مقدار الزيادة في range

يمكنك أيضًا تحديد مقدار الزيادة.

for i in range(2, 11, 2):
    print(i)

الناتج:

2
4
6
8
10

هنا بدأنا من 2، وتوقفنا قبل 11، وكانت الزيادة 2 في كل مرة.

مثال عملي: طباعة جدول الضرب

لنستخدم for لطباعة جدول ضرب رقم معين.

number = 5

for i in range(1, 11):
    print(number, "x", i, "=", number * i)

الناتج:

5 x 1 = 5
5 x 2 = 10
5 x 3 = 15

وهكذا حتى الرقم 10.

شرح while loop في Python

نستخدم while عندما نريد تكرار الكود طالما أن الشرط صحيح.

الشكل العام:

while condition:
    # code to repeat while condition is True

مثال:

count = 1

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

الناتج:

1
2
3
4
5

الحلقة استمرت طالما أن count <= 5.

شرح while خطوة بخطوة

بدأنا بقيمة:

count = 1

ثم كتبنا الشرط:

while count <= 5:

بعد كل مرة نطبع فيها الرقم، نزيده بواحد:

count = count + 1

ويمكن كتابتها بشكل مختصر:

count += 1
{alertWarning} انتبه: إذا نسيت زيادة المتغير داخل while، قد تدخل في حلقة لا نهائية.

ما هي الحلقة اللانهائية Infinite Loop؟

الحلقة اللانهائية تحدث عندما يبقى شرط while صحيحًا دائمًا، فلا تتوقف الحلقة.

مثال خطر:

count = 1

while count <= 5:
    print(count)

هنا لم نغيّر قيمة count، لذلك سيبقى الشرط صحيحًا دائمًا.

الصحيح:

count = 1

while count <= 5:
    print(count)
    count += 1
{alertError} الحلقة اللانهائية قد تجعل البرنامج لا يتوقف، لذلك تأكد دائمًا أن شرط while سيتغير في مرحلة ما.

استخدام break لإيقاف الحلقة

الكلمة break تستخدم لإيقاف الحلقة فورًا.

for i in range(1, 10):
    if i == 5:
        break
    print(i)

الناتج:

1
2
3
4

عندما وصلنا إلى 5، توقفت الحلقة.

استخدام continue لتخطي دورة واحدة

الكلمة continue تستخدم لتخطي الدورة الحالية والانتقال إلى الدورة التالية.

for i in range(1, 6):
    if i == 3:
        continue
    print(i)

الناتج:

1
2
4
5

لاحظ أن الرقم 3 لم يتم طباعته، لأننا استخدمنا continue.

الفرق بين break و continue

الأداة وظيفتها
break توقف الحلقة بالكامل.
continue تتخطى الدورة الحالية فقط وتكمل الحلقة.

Nested Loops في Python

يمكنك وضع حلقة داخل حلقة أخرى، وهذا يسمى Nested Loop.

مثال:

for i in range(1, 4):
    for j in range(1, 4):
        print(i, j)

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

مثال عملي: جمع أرقام قائمة

لنستخدم حلقة لجمع أرقام داخل قائمة.

numbers = [10, 20, 30]
total = 0

for number in numbers:
    total += number

print(total)

الناتج:

60

الحلقة مرت على كل رقم وأضافته إلى المتغير total.

مثال عملي: البحث عن اسم داخل قائمة

يمكنك استخدام الحلقة للبحث داخل قائمة.

names = ["Ahmed", "Sara", "Omar"]

for name in names:
    if name == "Sara":
        print("تم العثور على الاسم")

هذا المثال يجمع بين for و if.

أخطاء شائعة عند استخدام Loops

الخطأ الأول: نسيان النقطتين

هذا خطأ:

for i in range(5)
    print(i)

الصحيح:

for i in range(5):
    print(i)

الخطأ الثاني: نسيان المسافة البادئة

هذا خطأ:

for i in range(5):
print(i)

الصحيح:

for i in range(5):
    print(i)

الخطأ الثالث: إنشاء while لا تتوقف

إذا استخدمت while، تأكد أن الشرط سيتغير.

count = 1

while count <= 5:
    print(count)
    count += 1
{alertSuccess} أفضل طريقة لتعلم Loops هي كتابة أمثلة صغيرة مثل طباعة الأرقام، جمع قائمة، والبحث داخل قائمة.

متى أستخدم for ومتى أستخدم while؟

استخدم for عندما تعرف ما الذي تريد المرور عليه، مثل قائمة أو range أو نص.

واستخدم while عندما تريد التكرار طالما أن شرطًا معينًا صحيح.

الحالة الأفضل
المرور على قائمة أسماء for
طباعة أرقام من 1 إلى 10 for مع range
تكرار عملية حتى يكتب المستخدم كلمة خروج while
تنفيذ كود طالما الشرط صحيح while

روابط مفيدة

لفهم القوائم التي نمر عليها باستخدام الحلقات، اقرأ: أساسيات بايثون 8: شرح Lists في Python.

ولفهم الشروط التي نستخدمها داخل الحلقات، اقرأ: أساسيات بايثون 11: شرح if و else في Python.

ويمكنك الرجوع إلى توثيق بايثون الرسمي حول التحكم في تدفق البرنامج: Python Control Flow Documentation.

مقالات مقترحة من بايثون العرب

خلاصة الدرس

في هذا الدرس تعلمنا شرح Loops في Python، وفهمنا كيف تساعدنا الحلقات على تكرار الكود بطريقة منظمة.

تعلمنا:

  • ما معنى Loop في البرمجة.
  • كيفية استخدام for loop.
  • كيفية استخدام range().
  • كيفية استخدام while loop.
  • ما هي الحلقة اللانهائية.
  • الفرق بين break و continue.
  • متى نستخدم for ومتى نستخدم while.

الحلقات من أهم أساسيات بايثون، وستستخدمها كثيرًا عند التعامل مع القوائم، النصوص، الملفات، والبيانات.

تمرين بسيط لك

اكتب برنامجًا يطبع الأرقام من 1 إلى 10 باستخدام for.

ثم اكتب نفس البرنامج باستخدام while.

ابدأ بهذا المثال:

for i in range(1, 11):
    print(i)

ثم جرّب كتابته باستخدام while.

في الدرس القادم

في الدرس القادم من سلسلة أساسيات بايثون سنتعلم:

شرح Functions في Python للمبتدئين

وسنفهم كيف ننشئ دوال تساعدنا على تنظيم الكود وإعادة استخدامه.

إرسال تعليق

أحدث أقدم