عمليات السلاسل النصية

8.1 عمليات السلاسل النصية

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • مقارنة السلاسل النصية باستخدام العوامل المنطقية وعوامل الانتماء.
  • استخدام تابعي السلاسل النصية lower() و upper() لتحويل قيم السلاسل النصية إلى أحرف صغيرة وأحرف كبيرة.

مقارنة السلاسل النصية

يمكن مقارنة قيم السلاسل النصية باستخدام العوامل المنطقية (<, <=, >, >=, ==, !=) وعوامل الانتماء (in و not in). عند مقارنة قيمتين نصيتين، تتم مقارنة الأحرف المتطابقة فيهما بالتسلسل حتى يُتوصَّل إلى قرار. لمقارنة حرفين، تُستخدم قيم آسكي (ASCII) لتطبيق العوامل المنطقية.

العامل الوصف مثال المخرجات الشرح

> أو >=

يتحقق مما إذا كانت قيمة السلسلة النصية الأولى أكبر من (أو أكبر من أو تساوي) قيمة السلسلة النصية الثانية.

"c" > "d"

False

عند مقارنة المعامل "c" بالمعامل "d"، تكون قيمة آسكي للحرف "c" أصغر من قيمة آسكي للحرف "d". لذلك، "c" < "d". يُقيّم التعبير "c" > "d" إلى False.

< أو <=

يتحقق مما إذا كانت قيمة السلسلة النصية الأولى أصغر من (أو أصغر من أو تساوي) قيمة السلسلة النصية الثانية.

"ab" < "ac"

True

عند مقارنة المعامل "ab" بالمعامل "ac"، تكون الأحرف الأولى متطابقة، لكن الحرف الثاني في "ab" أصغر من الحرف الثاني في "ac"، وبالتالي "ab" < "ac".

==

يتحقق مما إذا كانت قيمتا سلسلتين نصيتين متساويتين.

"aa" == "aa"

True

بما أن جميع الأحرف في المعامل الأول والمعامل الثاني متطابقة، فإن قيمتي السلسلتين النصيتين متساويتان.

!=

يتحقق مما إذا كانت قيمتا سلسلتين نصيتين غير متساويتين.

"a" != "b"

True

يحتوي المعاملان على قيم سلسلتين نصيتين مختلفتين ("a" مقابل "b")، وتُقيّم نتيجة التحقق مما إذا كان الاثنان غير متطابقين إلى True.

in

يتحقق مما إذا كان المعامل الثاني يحتوي على المعامل الأول.

"a" in "bc"

False

بما أن السلسلة النصية "bc" لا تحتوي على السلسلة النصية "a"، فإن مخرجات "a" in "bc" تُقيّم إلى False.

not in

يتحقق مما إذا كان المعامل الثاني لا يحتوي على المعامل الأول.

"a" not in "bc"

True

بما أن السلسلة النصية "bc" لا تحتوي على السلسلة النصية "a"، فإن مخرجات "a" not in "bc" تُقيّم إلى True.

جدول 8.1 مقارنة قيم السلاسل النصية.

مفاهيم تطبيقية

استخدام العوامل المنطقية وعوامل الانتماء لمقارنة قيم السلاسل النصية

1.
ما مخرجات ("aaa" < "aab")؟
  1. True
  2. False
2.
ما مخرجات ("aa" < "a")؟
  1. True
  2. False
3.
ما مخرجات ("aples" in "apples")؟
  1. undefined
  2. True
  3. False

lower() و upper()

تحتوي بايثون على العديد من التوابع المفيدة لتعديل السلاسل النصية، اثنان منها هما التابعان lower() و upper(). يُرجع التابع lower() الأحرف الأبجدية المحوّلة إلى أحرف صغيرة، ويُرجع التابع upper() الأحرف الأبجدية المحوّلة إلى أحرف كبيرة. كلا التابعين lower() و upper() لا يُعدّلان السلسلة النصية الأصلية.

مثال 8.1

تحويل الأحرف في سلسلة نصية

في المثال أدناه، يتم استدعاء تابعي السلاسل النصية lower() و upper() على مُتغيِّر السلسلة النصية x لتحويل جميع الأحرف إلى أحرف صغيرة وأحرف كبيرة، على التوالي.

    x = "Apples"

    # يحوّل التابع lower() السلسلة النصية إلى أحرف صغيرة بالكامل
    print(x.lower())

    # يحوّل التابع upper() السلسلة النصية إلى أحرف كبيرة بالكامل
    print(x.upper())

مخرجات الشِفرة أعلاه هي:

    apples
    APPLES

مفاهيم تطبيقية

استخدام lower() و upper()

4.
ما مخرجات "aBbA".lower()؟
  1. abba
  2. ABBA
  3. abbA
5.
ما مخرجات "aBbA".upper()؟
  1. abba
  2. ABBA
  3. ABbA
  4. aBBA
6.
ما مخرجات ("a".upper() == "A")؟
  1. True
  2. False

جرّب بنفسك

عدد الأحرف في السلسلة النصية

مُتغيِّر سلسلة نصية، s_input، مُعرَّف. استخدم lower() و upper() لتحويل السلسلة النصية إلى أحرف صغيرة وأحرف كبيرة، واطبع النتائج في المخرجات. اطبع أيضًا عدد الأحرف في السلسلة النصية، بما في ذلك أحرف المسافات.

جرّب بنفسك

ما حَرفي؟

بالنظر إلى السلسلة النصية، s_input، وهي كائن سلسلة نصية من حرف واحد، إذا كان الحرف بين "a" و "t" أو "A" و "T"، فاطبع True. وإلا، فاطبع False.
تلميح: يمكنك تحويل s_input إلى أحرف صغيرة والتحقق مما إذا كانت s_input بين "a" و "t".