أساسيات السلسلة في Python

مكتمل

على الرغم من أن السلاسل في Python تبدو بسيطة ومباشرة، إلا أن هناك بعض التعقيد في قواعد السلسلة التي من المهم فهمها. تساعدك معرفة القواعد على تجنب المفاجأة بسلوك السلسلة عندما تقوم بتعديل القيم أو تنسيق النص.

سلسلة بسيطة

في مثالنا لهذه الوحدة، لديك حقيقة واحدة حول القمر التي تم تعيينها إلى متغير، مثل هذا:

fact = "The Moon has no atmosphere."
print(fact)

يظهر الإخراج أنه تم تعيين النص إلى المتغير: The Moon has no atmosphere.

عدم قابلية السلاسل للتغيير

في Python، السلاسل غير قابلة للتغيير. أي أنهم لا يستطيعون التغيير. قد تكون هذه الخاصية من نوع السلسلة مفاجئة، لأن Python لا يعطيك أخطاء عند تغيير السلاسل.

تحتاج إلى إضافة حقيقة أخرى (جملة) إلى حقيقة واحدة تم تعيينها إلى متغير. يبدو كما لو أن إضافة الحقيقة الثانية من شأنها أن تغير المتغير، كما في المثال التالي:

fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."

قد تتوقع أن يكون الإخراج: The Moon has no atmosphere.No sound can be heard on the Moon.

على الرغم من أنه قد يبدو كما لو أننا قمنا بتعديل المتغير fact، إلا أن فحصًا سريعًا للقيمة يكشف عن أن القيمة الأصلية لم تتغير:

fact = "The Moon has no atmosphere."
fact + "No sound can be heard on the Moon."
print(fact)

الإخراج: The Moon has no atmosphere.

الخدعة هي أنه يجب عليك استخدام قيمة إرجاع. عند إضافة سلاسل، لا تعدل Python أي سلسلة، لكنها تُرجع سلسلة جديدة كنتيجة لذلك. للاحتفاظ بهذه النتيجة الجديدة، قم بتعيينها إلى متغير جديد:

fact = "The Moon has no atmosphere."
two_facts = fact + "No sound can be heard on the Moon."
print(two_facts)

الإخراج: The Moon has no atmosphere.No sound can be heard on the Moon.

تؤدي العمليات على السلاسل دائمًا إلى إنتاج سلاسل جديدة كنتيجة لذلك.

حول استخدام علامات الاقتباس

يمكنك إحاطة سلاسل Python بعلامات اقتباس مفردة أو مزدوجة أو ثلاثية. على الرغم من أنه يمكنك استخدامها بالتبادل، فمن الأفضل استخدام نوع واحد باستمرار داخل المشروع. على سبيل المثال، تستخدم السلسلة التالية علامات اقتباس مزدوجة:

moon_radius = "The Moon has a radius of 1,080 miles."

ومع ذلك، عندما تحتوي سلسلة على كلمات أو أرقام أو أحرف خاصة (سلسلة فرعية) التي هي أيضًا مضمنة في علامات اقتباس، يجب استخدام نمط مختلف. على سبيل المثال، إذا كانت سلسلة فرعية تستخدم علامات اقتباس مزدوجة، فقم بإحاطة السلسلة بأكملها بعلامات اقتباس مفردة، كما هو موضح هنا:

'The "near side" is the part of the Moon that faces the Earth.'

وبالمثل، إذا كان هناك علامات اقتباس مفردة (أو فاصلة عليا، كما في Moon's في المثال التالي) في أي مكان داخل السلسلة، قم بإحاطة السلسلة بأكملها بعلامات اقتباس مزدوجة:

"We only see about 60% of the Moon's surface."

يمكن أن يؤدي الفشل في تبديل علامات الاقتباس المفردة والمزدوجة إلى قيام مترجم Python بإحداث خطأ نحوي، كما هو موضح هنا:

'We only see about 60% of the Moon's surface.'
  File "<stdin>", line 1
    'We only see about 60% of the Moon's surface.'
                                       ^
SyntaxError: invalid syntax

عندما يحتوي النص على مجموعة من علامات الاقتباس المفردة والمزدوجة، يمكنك استخدام علامات الاقتباس الثلاثية لمنع حدوث مشكلات مع المترجم:

"""We only see about 60% of the Moon's surface, this is known as the "near side"."""

نص متعدد الأسطر

هناك عدة طرق مختلفة لتعريف أسطر متعددة من النص كمتغير واحد. الطرق الأكثر شيوعًا هي:

  • استخدم حرف سطر جديد (\n).
  • استخدم علامات الاقتباس الثلاثية (""").

تفصل أحرف الخطوط الجديدة النص إلى أسطر متعددة عند طباعة الإخراج:

multiline = "Facts about the Moon:\n There is no atmosphere.\n There is no sound."
print(multiline)
Facts about the Moon:
 There is no atmosphere.
 There is no sound.

يمكنك تحقيق نفس النتيجة باستخدام علامات الاقتباس الثلاثية:

multiline = """Facts about the Moon:
 There is no atmosphere. 
 There is no sound."""
print(multiline)