📚 حلقة لا نهائية
المفاهيم الأساسية
الحلقة اللا نهائية (Infinite Loop): حلقة لا تنتهي أبداً لأن شرطها لا يصبح خطأ (False).
خريطة المفاهيم
```markmap
الحلقات في بايثون
الغرض
- تكرار الأوامر عدة مرات
- توفير الوقت والجهد
أنواع الحلقات
حلقة for
- للتكرار عدد محدد من المرات
- تستخدم دالة `range()`
#### دالة النطاق (range())
##### صيغ الاستخدام
- يبدأ من 0
- يزيد بمقدار 1
- ينتهي قبل `stop`
- يبدأ من `start`
- يزيد بمقدار 1
- ينتهي قبل `stop`
- `range(start, stop, step)`
- يبدأ من `start`
- يزيد أو ينقص بمقدار `step`
- ينتهي قبل `stop`
##### خصائص
- يمكن أن تكون `step` سالبة للعد العكسي
#### تطبيق عملي
##### مثال: تقييم درجات الطلبة
- تكرار العملية لصف كامل (مثال: 15 طالبًا)
- قراءة اسم ودرجة كل طالب
- استخدام `if-elif-else` داخل الحلقة لتحديد النتيجة والدرجة
حلقة while
#### آلية العمل
- يتم فحص الشرط قبل كل تكرار
- تتكرر الأوامر طالما الشرط صحيح
- تتوقف عندما يصبح الشرط خطأ
- إذا كان الشرط خطأ من البداية، لا تُنفذ الحلقة
#### بناء الجملة
- `while condition:`
- `statements` (يجب أن تُسبق بمسافة بادئة)
#### مثال تطبيقي
- تنتهي الحلقة عندما يُدخل المستخدم القيمة `0`
#### تطبيق جديد: التحقق من صحة المدخلات
##### مثال: درجات تقييم الطلبة
- الغرض: التحقق من أن الدرجة المدخلة بين 0 و 20
- الشرط: `while grade<0 or grade>20:`
- الإجراء داخل الحلقة:
- عرض رسالة خطأ: "درجة غير صالحة، أدخل درجة من 0-20."
- طلب إدخال درجة جديدة
- طباعة الدرجة الصالحة: `print("درجتك هي: ", grade)`
#### حلقة لا نهائية (Infinite Loop)
##### السبب
- عدم تغيير الحالة داخل الحلقة لجعل الشرط خطأ
##### مثال
- `print(i)`
- (قيمة `i` لا تتغير، لذا تستمر الحلقة للأبد)
##### كيفية الإيقاف
- الضغط على `Ctrl + C` في نافذة Python shell
قواعد أساسية
المسافة البادئة
- ضرورية لتحديد العبارات داخل الحلقة
- بدونها يحدث خطأ
```
نقاط مهمة
- عند استخدام حلقة `while`، يجب تضمين أمر (أو أوامر) داخل الحلقة لتغيير الحالة من صواب (True) إلى خطأ (False) وإلا ستتحول إلى حلقة لا نهائية.
- مثال الحلقة اللا نهائية: `i=1` ثم `while i<6: print(i)`، حيث لا تتغير قيمة `i`، فتبقى الحلقة تعمل إلى الأبد.
- لإيقاف تكرار الحلقة اللا نهائية أثناء التنفيذ، اضغط على `Ctrl + C`.