Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

بايثونالحلقة while

  • تعريف الحلقة while
  • مثال حول الحلقة while
  • مثال حول إستخدام الجملة الشرطية else مع الحلقة while في بايثون
  • طريقة إنشاء حلقة لا تتوقف (Infinite Loop)

تعريف الحلقة while

نستخدم الحلقة while للإستمرار في تنفيذ الكود طالما أن الموضوع فيها لا يزال يتحقق.

هنا كأننا نقول: "طالما أن الشرط يتحقق إستمر في تكرار الكود".


طريقة إستخدامها

فيما يلي الشكل العام لتعريف الحلقة while في بايثون.

while condition:
    statements
  • condition - الشرط الذي يحدد ما إن كانت الحلقة يجب تتوقف عن تكرار الكود الموجود فيها أم لا. إذاً في كل دورة يتم التأكد أولاً إذا تحقق هذا الشرط أم لا. طالما أنه يتحقق، أي نتيجة الشرط تساوي True فهذا يعني أنه سيتم تكرار الكود.
  • statements - هي جميع الأوامر الموضوعة في الحلقة و هي تتنفذ في كل دورة. بعد أن تتنفذ جميع الأوامر سيتم التأكد من الشرط الموضوع في الحلقة لمعرفة ما إن كان يجب إعادة تنفيذ هذه الأوامر أم لا.

مثال حول الحلقة while

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

مثال

Test.py
i = 1
# و إذا i في كل دورة من دورات الحلقة سيتم فحص قيمة العداد
# كانت أصغر أو تساوي 5 سيتم طباعتها و من ثم إضافة 1 عليها
while i <= 5:
print(i)
i += 1
i = 1 # و إذا i في كل دورة من دورات الحلقة سيتم فحص قيمة العداد # كانت أصغر أو تساوي 5 سيتم طباعتها و من ثم إضافة 1 عليها while i <= 5: print(i) i += 1

النتيجة

1
2
3
4
5

مثال حول إستخدام الجملة الشرطية else مع الحلقة while في بايثون

يمكن وضع الجملة الشرطية else مباشرةً بعد الحلقة while لتنفيذ بلوك من الكود ( مجموعة أوامر ) عندما يصبح جواب الشرط الذي يجعلها تستمر في إعادة تنفيذ الكود يساوي False.

مثال

Test.py
i = 1
# و إذا كانت i في كل دورة من دورات الحلقة سيتم فحص قيمة العداد
# أصغر أو تساوي 5 سيتم طباعتها و من ثم إضافة 1 عليها، و إن لم تكن
# else كذلك سيتم تنفيذ أمر الطباعة الموضوع في الجملة الشرطية
while i <= 5:
print(i)
i += 1
else:
print('This block is executed when the condition return False!')
i = 1 # و إذا كانت i في كل دورة من دورات الحلقة سيتم فحص قيمة العداد # أصغر أو تساوي 5 سيتم طباعتها و من ثم إضافة 1 عليها، و إن لم تكن # else كذلك سيتم تنفيذ أمر الطباعة الموضوع في الجملة الشرطية while i <= 5: print(i) i += 1 else: print('This block is executed when the condition return False!')

النتيجة

1
2
3
4
5
This block is executed when the condition return False!

طريقة إنشاء حلقة لا تتوقف (Infinite Loop)

قبل تجربة الأمثلة التالية على الحاسوب عليك معرفة أن الحلقة الانهائية ( Infinite Loop ) قد تجعله يعلّق أو قد تسبب في إرتفاع حرارة المعالج إلى أن يحترق إذا لم يتم إيقاف الكود يدوياً و خلال وقت قصير.

الصورة التالية توضح طريقة إيقاف أي برنامج يدوياً بعد أن يتم تشغيله.

إيقاف تنفيذ أوامر برنامج Pycharm


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

المثال الأول

Test.py
while 1 == 1:
print('I am stuck!')
while 1 == 1: print('I am stuck!')

النتيجة

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!

في المثال التالي قمنا بكتابة while True: بدلاً من كتابة while 1 == 1: و هذا الأمر أيضاً سيجعل الحلقة تستمر بتنفيذ الكود الموضوع بلا توقف.

المثال الثاني

Test.py
while True:
print('I am stuck!')
while True: print('I am stuck!')

النتيجة

I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!
I am stuck!