تدفّق التحكم: if وwhile وfor
الشروط والحلقات وbreak وcontinue.
كل الدروس · دروس بايثون: تعلّم من الصفر
if / elif / else
تتيح if للبرنامج اتخاذ القرار. إذا تحقق الشرط نُفّذت الكتلة المُزاحة. وللحالات المتعددة نستخدم elif ولكل ما تبقّى else؛ ولا تُنفَّذ إلا أول كتلة شرطها صحيح.
score = 73
if score >= 90:
grade = "A"
elif score >= 70:
grade = "B"
elif score >= 50:
grade = "C"
else:
grade = "F"
print(grade) # Bالنص الفارغ والصفر والقائمة الفارغة وNone تُعدّ «خطأ» في الشرط وما عداها «صواب». وهذا يتيح فحوصًا مختصرة مثل if items:.
حلقة while
تكرّر while كتلتها ما دام الشرط صحيحًا. يجب أن يتغير شيء يؤثر في الشرط وإلا صارت الحلقة لا نهائية. توقف break الحلقة فورًا وتنتقل continue إلى الدورة التالية.
balance = 100
years = 0
while balance < 200:
balance *= 1.07 # +7% per year
years += 1
print(years, round(balance, 2))حلقة for ودالة range()
تأخذ for كل عنصر في المتسلسلة بالتتابع. وعند الحاجة إلى عدد محدد من التكرارات استخدم range(): فـ range(5) تعطي 0 إلى 4 وrange(2, 8, 2) تعطي 2 و4 و6.
for fruit in ["apple", "plum", "fig"]:
print(fruit.upper())
for i in range(1, 4):
print(i, "squared is", i * i)
for idx, ch in enumerate("abc"):
print(idx, ch)يمكن تداخل الحلقات. وإذا أضفت else إلى for فلن تعمل إلا إذا انتهت الحلقة دون break، وهذا مفيد في مسائل البحث.
for n in range(2, 20):
for d in range(2, n):
if n % d == 0:
break
else:
print(n, "is prime")