إلى جانب العبارة while
التي تم شرحها في الموضوع السابق، تستخدم بايثون Python أدوات أو عبارات التحكم في التدفق المعتادة المعروفة من اللغات الأخرى، مع بعض التغييرات.
عبارة If
من أكثر أنواع الجمل البرمجية شهرة هي عبارة if
. فمثلا:
>>> x = int(input("Please enter an integer: "))
Please enter an integer: 42
>>> if x < 0:
... x = 0
... print('Negative changed to zero')
... elif x == 0:
... print('Zero')
... elif x == 1:
... print('Single')
... else:
... print('More')
...
More
يمكن أن يكون هناك صفر أو أكثر من أجزاء elif
، والجزء الآخر اختياري. الكلمة الرئيسية “elif
” هي اختصار لعبارة “else if” ، وهي مفيدة لتجنب المسافات البادئة الزائدة. تسلسل if… elif… elif… هو بديل لمفتاح التبديل أو عبارات الحالة الموجودة في لغات أخرى.
عبارة For
تختلف عبارة For
في بايثون قليلا عما قد تكون معتادًا عليه في لغة C أو باسكال. فبدلاً من تكرار عملية التقدم الحسابي للأرقام (كما هو الحال في باسكال)، أو إعطاء المستخدم القدرة على تحديد كل من خطوة للتكرار وشرط التوقف (مثل C)، فإن عبارة For
في بايثون تكرر عناصر أي تسلسل (في قائمة أو سلسلة)، بالترتيب الذي تظهر به في ذلك التسلسل. على سبيل المثال:
>>> # Measure some strings:
... words = ['cat', 'window', 'defenestrate']
>>> for w in words:
... print(w, len(w))
...
cat 3
window 6
defenestrate 12
قد يكون من الصعب الحصول على الكود الذي يعدل مجموعة أثناء التكرار على نفس المجموعة. بدلا من ذلك، عادةً ما يكون من الأسهل إجراء تكرار حلقي فوق نسخة من المجموعة أو إنشاء مجموعة جديدة:
# Strategy: Iterate over a copy
for user, status in users.copy().items():
if status == 'inactive':
del users[user]
# Strategy: Create a new collection
active_users = {}
for user, status in users.items():
if status == 'active':
active_users[user] = status
الوظيفة المضمنة range()
إذا كنت بحاجة إلى التكرار عبر سلسلة من الأرقام، فإن الوظيفة المضمنة range()
تكون مفيدة. فهي تولد التدرجات الحسابية:
>>> for i in range(5):
... print(i)
...
0
1
2
3
4
لا تعتبر نقطة النهاية المعطاة جزءًا من التسلسل الذي تم إنشاؤه؛ Range(10) تولد 10 قيم، المؤشرات الصحيحة للعناصر ذات تسلسل الطول 10. من الممكن ترك النطاق يبدأ من رقم آخر، أو تحديد زيادة مختلفة (حتى سالبة؛ أحيانًا تسمى “الخطوة” ):
range(5, 10)
5, 6, 7, 8, 9
range(0, 10, 3)
0, 3, 6, 9
range(-10, -100, -30)
-10, -40, -70
للتكرار فوق مؤشرات السلسلة، يمكنك الجمع بين range () و len () على النحو التالي:
>>> a = ['Mary', 'had', 'a', 'little', 'lamb']
>>> for i in range(len(a)):
... print(i, a[i])
...
0 Mary
1 had
2 a
3 little
4 lamb
- مقترح موضوع للقراءة: لغة برمجة بايثون
المصدر
- دورة تدريب دروس لغة برمجة بايثون Python، ترجمة وإعداد: د. مصطفى عبيد، مركز البحوث والدراسات متعدد التخصصات.
- الموقع الرسمي لمؤسسة برمجيات بايثون Python Software Foundation.