Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

حلقة While

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

تختلف حلقة while عن حلقة for. تتيح لنا حلقة for التكرار عبر range معين، بينما تتيح لنا حلقة while الاستمرار في التكرار طالما تحقق condition معين.

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

while condition:
	code

سيتم تنفيذ الكود فقط إذا كانت الـ condition هي True.

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

داخل جسم الـ loop، عادة ما تحتاج إلى تحديث (update) الـ variable الجاري فحصها. يتم ذلك باستخدام عوامل التعيين المركبة (augmented assignment operators) مثل += (الجمع والتعيين)، -= (الطرح والتعيين)، *= (الضرب والتعيين)، أو /= (القسمة والتعيين). على سبيل المثال، x *= 2 هي اختصار لـ x = x * 2. بدون تحديث الـ variable، لن تتغير الـ condition أبداً وسيعمل الـ loop إلى الأبد (infinite).

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

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

أوجد أصغر قوة للعدد 2 تكون أكبر من number معطى.

لحله، سنستخدم حلقة 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 هي الـ condition باستخدام عامل مقارنة، و power_of_two *= 2 تقوم بـ update لـ variable في كل تكرار باستخدام عامل إسناد مركب. وبمجرد أن تتجاوز قيمة power_of_two قيمة number، تصبح الـ condition مساوية لـ False ويتوقف الـ loop.

challenge icon

التحدي

مبتدئ

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

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

اطبع أول رقم يكون أصغر من 3.5.

جرّب بنفسك

quiz iconاختبر نفسك

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

جميع دروس Fundamentals

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