المزيد من أدوات التحكم في التدفق في بايثون

إلى جانب العبارة 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.
المزيد من أدوات التحكم في التدفق في بايثون Python
المزيد من أدوات التحكم في التدفق في بايثون Python
error:
Scroll to Top