كل شيء عن بايثون أثناء الحلقة مع الأمثلة

كل شيء عن بايثون أثناء الحلقة مع الأمثلة

عقدة المصدر: 3091323

المُقدّمة

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

بايثون أثناء الحلقة

جدول المحتويات

بناء الجملة وبنية حلقة while

بناء جملة حلقة while في بايثون هو كما يلي:

while condition:
    # code to be executed

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

الاستخدام الأساسي والأمثلة

لنبدأ بمثال بسيط لفهم الاستخدام الأساسي للحلقة while. لنفترض أننا نريد طباعة الأرقام من 1 إلى 5. يمكننا تحقيق ذلك باستخدام حلقة while، كما هو موضح أدناه:

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

الناتج

1

2

3

4

5

في هذا المثال، قمنا بتهيئة المتغير `num` إلى 1. وتستمر حلقة while إذا كان `num` أقل من أو يساوي 5. داخل الحلقة، نطبع قيمة `num` ثم نزيدها بمقدار 1 باستخدام الأمر عامل التشغيل `+=`. تتكرر هذه العملية حتى يصبح `num` 6، عندما يصبح الشرط False، وتنتهي الحلقة.

التحكم في التدفق باستخدام بيانات التحكم في الحلقة

توفر بايثون ثلاث عبارات للتحكم في الحلقة، "break"، و"متابعة"، و"pass"، للسماح لك بالتحكم في تدفق حلقة while.

بيان "الاستراحة".

يتم استخدام عبارة "break" للخروج من الحلقة قبل الأوان، حتى لو كان شرط الحلقة لا يزال صحيحا. يتم استخدامه غالبًا عند استيفاء شرط معين، والرغبة في إنهاء الحلقة على الفور. هنا مثال:

num = 1
while num <= 10:
    if num == 6:
        break
    print(num)
    num += 1

الناتج

1

2

3

4

5

في هذا المثال، تنتهي الحلقة عندما يصبح `num` 6 لأننا استخدمنا عبارة `break` داخل شرط if. ونتيجة لذلك، تتم طباعة الأرقام من 1 إلى 5 فقط.

بيان "الاستمرار".

يتم استخدام عبارة "متابعة" لتخطي بقية كتلة التعليمات البرمجية داخل الحلقة والانتقال إلى التكرار التالي. يكون ذلك مفيدًا عندما تريد تخطي قيم أو شروط معينة والاستمرار في التكرار التالي. هنا مثال:

num = 1
while num <= 5:
    if num == 3:
        num += 1
        continue
    print(num)
    num += 1

الناتج

1

2

4

5

في هذا المثال، تتخطى الحلقة القيمة 3 لأننا استخدمنا عبارة "متابعة" داخل شرط if. ونتيجة لذلك، لا تتم طباعة الرقم 3، وتستمر الحلقة مع التكرار التالي.

بيان "التمرير".

تعتبر عبارة "pass" عنصرًا نائبًا عندما لا تريد القيام بأي شيء داخل الحلقة. غالبًا ما يتم استخدامه كعنصر نائب مؤقت أثناء التطوير أو عندما تريد إنشاء حلقة فارغة. هنا مثال:

num = 1
while num <= 5:
    pass
    num += 1

في هذا المثال، لا تفعل عبارة "pass" شيئًا، وتزيد الحلقة قيمة "num" حتى تصبح 6.

حالات الاستخدام المشترك والتطبيقات

بينما تحتوي الحلقات على نطاق واسع من التطبيقات في بايثون. دعنا نستكشف بعض حالات الاستخدام الشائعة:

التكرار حتى يتم استيفاء الشرط

يتم استخدام حلقات while بشكل شائع عندما تريد التكرار حتى يتم استيفاء شرط معين. على سبيل المثال، نريد إيجاد القوة الأولى للعدد 2 أكبر من 1000. يمكننا استخدام حلقة while لتحقيق ذلك:

num = 1
while num <= 1000:
    num *= 2
print(num)

الناتج

1024

في هذا المثال، تستمر الحلقة حتى يتجاوز `num` 1000. وفي كل تكرار، يتم ضرب `num` في 2، وتتم طباعة القيمة النهائية.

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

تعد حلقات while مفيدة للتحقق من صحة إدخال المستخدم والتأكد من أن الإدخال يلبي معايير معينة. على سبيل المثال، نريد مطالبة المستخدم بإدخال عدد صحيح موجب. يمكننا استخدام حلقة while لطلب الإدخال حتى يتم إدخال عدد صحيح صالح بشكل متكرر:

while True:
    try:
        num = int(input("Enter a positive integer: "))
        if num > 0:
            break
        else:
            print("Invalid input. Please enter a positive integer.")
    except ValueError:
        print("Invalid input. Please enter a valid integer.")

في هذا المثال، تستمر الحلقة إلى أجل غير مسمى حتى يتم إدخال عدد صحيح موجب صالح. تتعامل الكتلة "try-except" مع الأخطاء المحتملة عند تحويل الإدخال إلى عدد صحيح.

إنشاء حلقات لا نهائية

يمكن استخدام حلقات while لإنشاء حلقات لا نهائية، والتي تستمر إلى أجل غير مسمى حتى يتم استيفاء شرط معين. على سبيل المثال، لنقم بإنشاء حلقة لا نهائية بسيطة تطبع عبارة "Hello, World!" مرارا وتكرارا:

while True:
    print("Hello, World!")

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

قد تكون الحلقة اللانهائية مفيدة في سياق نظام المراقبة أو التسجيل في الوقت الفعلي. تخيل موقفًا حيث يجب عليك مراقبة نظام أو شبكة بشكل مستمر بحثًا عن أحداث أو تغييرات معينة وتسجيل المعلومات. ويمكن استخدام حلقة لا نهائية للتحقق من هذه الشروط واتخاذ الإجراءات المناسبة باستمرار.

تنفيذ حلقات اللعبة

بينما تُستخدم الحلقات بشكل شائع في تطوير اللعبة لتنفيذ حلقات اللعبة، والتي تتحكم في تدفق اللعبة وتتعامل مع مدخلات المستخدم. تتكون حلقة اللعبة عادةً من ثلاثة مكونات رئيسية: تحديث حالة اللعبة، وعرض رسومات اللعبة، والتعامل مع إدخالات المستخدم. إليك مثال مبسط:

game_running = True
while game_running:
    # Update game state
    # Render game graphics
    # Handle user input

في هذا المثال، تستمر الحلقة طالما أن المتغير "game_running" هو True. داخل الحلقة، يمكنك تحديث حالة اللعبة، وعرض رسومات اللعبة، والتعامل مع إدخالات المستخدم. تتكرر هذه العملية حتى تنتهي اللعبة أو يختار اللاعب الخروج.

اقرأ أيضًا: برنامج تعليمي كامل لبايثون لتعلم علوم البيانات من الصفر

متداخلة أثناء الحلقات وتداخل الحلقات

بايثون يسمح لك بتداخل حلقات while، مما يعني أنه يمكنك الحصول على حلقة while داخل حلقة while أخرى. يكون هذا مفيدًا عندما تحتاج إلى تنفيذ مهام متكررة ضمن المهام المتكررة. هنا مثال:

outer_num = 1
while outer_num <= 3:
    inner_num = 1
    while inner_num <= 3:
        print(outer_num, inner_num)
        inner_num += 1
    outer_num += 1

الناتج

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

في هذا المثال، لدينا حلقة while خارجية تتكرر من 1 إلى 3، وحلقة داخلية تتكرر من 1 إلى 3 لكل تكرار حلقة خارجية. تعرض عبارة الطباعة داخل الحلقة الداخلية قيم متغيري الحلقة.

النصائح وأفضل الممارسات لاستخدام while Loops

على الرغم من أن الحلقات عبارة عن بنيات قوية، إلا أنها قد تكون أيضًا عرضة للأخطاء إذا لم يتم استخدامها بشكل صحيح. فيما يلي بعض النصائح وأفضل الممارسات التي يجب وضعها في الاعتبار عند استخدام حلقات while:

تهيئة المتغيرات بشكل صحيح

قبل الدخول في حلقة while، قم بتهيئة أي متغيرات حلقة إلى قيمها الأولية. وهذا يضمن تقييم حالة الحلقة بشكل صحيح ويمنع السلوك غير المتوقع. على سبيل المثال:

count = 0
while count < 10:
    print(count)
    count += 1

في هذا المثال، قمنا بتهيئة المتغير `count` إلى 0 قبل الدخول إلى الحلقة.

ضمان إنهاء الحلقة

لتجنب الحلقات اللانهائية، تأكد دائمًا من أن حالة الحلقة ستصبح خطأ في النهاية. يمكن تحقيق ذلك عن طريق تحديث متغيرات الحلقة أو استخدام عبارات التحكم في الحلقة مثل "break". على سبيل المثال:

num = 1
while num <= 10:
    if num == 6:
        break
    print(num)
    num += 1

في هذا المثال، تنتهي الحلقة عندما يصبح `num` 6 بسبب عبارة `break`.

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

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

كتابة كود قابل للقراءة وقابل للصيانة

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

التقنيات والحيل المتقدمة

يمكن استخدام حلقات while بطرق متقدمة لتحقيق مهام محددة. فيما يلي بعض التقنيات والحيل المتقدمة:

التكرار باستخدام عبارات أخرى

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

num = 1
while num <= 5:
    print(num)
    num += 1
else:
    print("Loop completed")

الناتج

1

2

3

4

5

اكتملت الحلقة

في هذا المثال، يتم تنفيذ الكتلة else بعد اكتمال الحلقة بشكل طبيعي.

استخدام while Loops مع القوائم والسلاسل

يمكن استخدام حلقات while للتكرار على القوائم والسلاسل باستخدام متغير الفهرس. هنا مثال:

fruits = ["apple", "banana", "cherry"]
index = 0
while index < len(fruits):
    print(fruits[index])
    index += 1

الناتج

تفاحة

موز

الكرز

في هذا المثال، تتكرر حلقة while فوق عناصر قائمة "الفاكهة" باستخدام متغير الفهرس.

اقرأ أيضًا: كل ما يجب أن تعرفه عن هياكل البيانات المضمنة في بايثون – دليل المبتدئين!

مقارنة مع بنيات الحلقات الأخرى في بايثون

تعد حلقات while مجرد واحدة من العديد من بنيات الحلقات المتوفرة في بايثون. دعونا نقارن حلقات while مع حلقات for والتكرار:

بينما الحلقات مقابل الحلقات

في حين يتم استخدام الحلقات والحلقات للتكرار، إلا أن لهما حالات استخدام مختلفة. في حين أن الحلقات أكثر مرونة ويمكنها التعامل مع الظروف المعقدة، في حين أن حلقات for أكثر ملاءمة للتكرار عبر سلسلة من القيم. تعد حلقات while مفيدة عندما لا تعرف العدد الدقيق للتكرارات مقدمًا أو عندما تحتاج إلى إجراء حسابات معقدة. تكون الحلقات مفيدة عندما تريد التكرار عبر سلسلة من القيم، مثل قائمة أو سلسلة.

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

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

وفي الختام

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

أطلق العنان لقوة التميز في الذكاء الاصطناعي والتعلم الآلي! سجل الآن في موقعنا برنامج AI & ML BlackBelt Plus المعتمد ورفع مهاراتك إلى آفاق جديدة. لا تفوت فرصة إتقان أحدث التقنيات - قم بتغيير حياتك المهنية اليوم!

أيضًا، إذا كنت تبحث عن دورة لغة Python عبر الإنترنت، فاستكشف – مقدمة لبرنامج بايثون اليوم!

الطابع الزمني:

اكثر من تحليلات Vidhya