Python Tutorials

إتقان حلقة while في بايثون: دليل شامل

Spread the love

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

محتويات

بنية حلقة `while` الأساسية

التركيب النحوي الأساسي لحلقة `while` بسيط:


while condition:
    # الكود المراد تنفيذه بشكل متكرر
    # ...

يتم تقييم `condition` قبل كل تكرار. إذا كان التقييم صحيحًا (`True`)، يتم تنفيذ كتلة الكود المسحوقة. وإذا كان التقييم خاطئًا (`False`)، تنتهي الحلقة، ويستمر البرنامج مع الجمل التي تلي الحلقة.

التحكم في تنفيذ الحلقة: `break` و `continue`

توفر عبارتا `break` و `continue` تحكمًا دقيقًا في سلوك الحلقة:

  • break: تخرج من الحلقة فورًا، بغض النظر عن الشرط.
  • continue: تتخطى باقي التكرار الحالي وتنتقل إلى التكرار التالي.

count = 0
while count < 5:
    count += 1
    if count == 3:
        continue  # تخطي طباعة 3
    print(count)

while count < 10:
    count += 1
    if count == 7:
        break  # الخروج من الحلقة عندما يكون count يساوي 7
    print(count)

بنية `while-else`

تدعم حلقة `while` في بايثون بشكل فريد كتلة `else` اختيارية. يتم تنفيذ كتلة `else` هذه فقط إذا اكتملت الحلقة *بشكل طبيعي* — أي عندما يصبح شرط الحلقة `False`. ومن المهم ملاحظة أن كتلة `else` *لا* يتم تنفيذها إذا تم إنهاء الحلقة باستخدام عبارة `break`. وهذا يوفر طريقة نظيفة للتعامل مع المواقف التي تحتاج فيها إلى تنفيذ إجراء فقط عندما تنتهي الحلقة دون انقطاع.


count = 0
while count < 5:
    print(count)
    count += 1
else:
    print("اكتملت الحلقة بشكل طبيعي!")


count = 0
while count < 5:
    if count == 3:
        break
    print(count)
    count += 1
else:
    print("لم تكتمل الحلقة بشكل طبيعي!") # لن تُطبع هذه العبارة

أمثلة عملية

فيما يلي مثالان يُوضحان الاستخدامات العملية لحلقات `while`:

مثال 1: التحقق من صحة إدخال المستخدم


while True:
    try:
        age = int(input("أدخل عمرك: "))
        if age >= 0:
            break  # الخروج من الحلقة إذا تم إدخال عمر صحيح
        else:
            print("العمر لا يمكن أن يكون سالبًا.")
    except ValueError:
        print("إدخال غير صحيح. يرجى إدخال رقم.")

print(f"عمرك هو: {age}")

مثال 2: محاكاة العد التنازلي


import time

countdown = 10
while countdown > 0:
    print(countdown)
    time.sleep(1)  # التوقف لمدة ثانية واحدة
    countdown -= 1
print("انطلاق!")

تجنب الحلقات اللانهائية

من المُحبط الشائع مع حلقات `while` هو إنشاء حلقة لانهائية — حلقة لا تنتهي أبدًا. يحدث هذا عادةً عندما لا يصبح شرط الحلقة `False` أبدًا. تأكد دائمًا من أن شرط الحلقة سيُقيّم في النهاية إلى `False`. راجع منطق الحلقة بعناية وتأكد من تحديث المتغيرات التي تؤثر على الشرط بشكل مناسب داخل جسم الحلقة.

اترك تعليقاً

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