Menu
CoddyTech
flag Ar iconالعربيةdown icon

حلقة While

جزء من قسم الأساسيات في رحلة Python على Coddy. الدرس 36 من 77.

تختلف حلقة while عن حلقة for. تتيح لنا حلقة for التكرار عبر range محدد، بينما تتيح لنا حلقة while مواصلة التكرار ما دام شرط معيّن مستوفًى.

لاستخدام حلقة while اكتب:

while condition:
	code

سيُنفَّذ الكود فقط إذا كان الشرط True.

يُشكَّل الشرط عادةً باستخدام عوامل المقارنة مثل <= (أصغر من أو يساوي)، أو >= (أكبر من أو يساوي)، أو < (أصغر من)، أو > (أكبر من)، أو == (يساوي). تستمر الحلقة في العمل ما دام تقييم تلك المقارنة هو True، وتتوقف بمجرد أن يصبح False.

داخل جسم الحلقة، تحتاج عادةً إلى تحديث المتغير الذي يتم التحقق منه. ويتم ذلك باستخدام معاملات الإسناد المركبة مثل += (الجمع والإسناد)، أو -= (الطرح والإسناد)، أو *= (الضرب والإسناد)، أو /= (القسمة والإسناد). على سبيل المثال، تُعد x *= 2 صيغة مختصرة لـ x = x * 2. من دون تحديث المتغير، لن يتغير الشرط أبدًا وستستمر الحلقة إلى ما لا نهاية.

هناك العديد من حالات الاستخدام التي يمكن فيها لـ while حل المشكلة، لكن حلقة for لا يمكنها ذلك.

على سبيل المثال، انظر في هذه المشكلة:

اعثر على أصغر قوة للعدد 2 تكون أكبر من عدد مُعطى.

لحلّها، سنستخدم حلقة while تضاعف قوة العدد 2 الحالية في 2 بشكل متكرر حتى تصبح أكبر من العدد المُعطى:

number = 27
power_of_two = 1
while power_of_two <= number:
    power_of_two *= 2
print(power_of_two)

هنا، power_of_two <= number هو الشرط الذي يستخدم عامل مقارنة، وpower_of_two *= 2 يحدّث المتغير في كل تكرار باستخدام عامل إسناد مُعزَّز. بمجرد أن تتجاوز power_of_two القيمة number، يصبح الشرط False وتتوقف الحلقة.

challenge icon

التحدي

مبتدئ

اكتب برنامجًا يحصل على مُدخل واحد، وهو عدد float.

استخدم حلقة while لقسمة المُدخل على 2 ما دام العدد أكبر من أو يساوي 3.5.

اطبع أول عدد أصغر من 3.5.

جرّب بنفسك

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس الأساسيات

تدرّب بنفسك: مترجم Python عبر الإنترنت