كتابة التعبيرات البرمجية على عدة أسطر
بدأت بعض أسطر الكود لدينا تطول. يتيح بايثون عدة طرق لتقسيم التعليمة الواحدة على أكثر من سطر، لكن ذلك لا يحدث تلقائيًا؛ يجب أن يفهم بايثون أن السطر التالي استمرار للسطر السابق.
مثلًا، الكود التالي صياغته غير صحيحة وسيعطي خطأ:
is_friend = name == "Alice" or name == "Bob"
يحاول بايثون تفسير المثال السابق كسطرين مستقلين، فيرتبك لأن السطر الأول انتهى بعد or. يجب أن نوضح له أن التعليمة مستمرة في السطر التالي.
إحدى الطرق هي وضع \ في نهاية السطر للهروب من فاصل السطر.
وطريقة أخرى هي جعل فاصل السطر يقع داخل نوع من الأقواس. عندها يعرف بايثون أن التعبير لم ينته بعد، لأنه ينتظر إغلاق الأقواس قبل اعتبار التعليمة مكتملة. إذا كنت بالفعل داخل أقواس، مثل استدعاء دالة أو إنشاء قائمة، فقد لا تحتاج إلى أي شيء إضافي. وإلا يمكنك إحاطة التعبير بأقواس لتسمح بتقسيمه على أسطر.
هذه بعض الأمثلة. انتبه للتفاصيل:
name = 'Bob'
is_friend = name == 'Alice' or name == 'Bob'
print(is_friend)
is_friend = name == 'Alice' or name == 'Bob'
print(is_friend)
is_friend = [name == 'Alice', name == 'Bob']
print(is_friend)
print(name == 'Alice' or name == 'Bob')
إذا ظهر لك SyntaxError غامض، فتحقق من أنك لم تقسّم تعبيرًا على عدة أسطر في موضع لا يسمح فيه بايثون بذلك.