8.2 تقطيع السلاسل النصية
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- استخدام فهرسة السلاسل النصية للوصول إلى الأحرف في السلسلة النصية.
- استخدام تقطيع السلاسل النصية للحصول على سلسلة فرعية من سلسلة نصية.
- تحديد خصائص عدم قابلية تغيير السلاسل النصية.
فهرسة السلاسل النصية
السلسلة النصية هي نوع من المتتاليات. تتكون السلسلة النصية من متتالية من الأحرف المفهرسة من اليسار إلى اليمين، بدءًا من 0. بالنسبة لمتغير سلسلة نصية s، يكون الحرف الأقصى يسارًا مفهرسًا بالرقم 0، والحرف الأقصى يمينًا مفهرسًا بالرقم len(s) - 1. مثال: طول السلسلة النصية "Cloud" هو 5، لذا فإن الفهرس الأخير هو 4.
يمكن أيضًا استخدام الفهرسة السالبة للإشارة إلى الأحرف من اليمين إلى اليسار بدءًا من -1. بالنسبة لمتغير سلسلة نصية s، يكون الحرف الأقصى يسارًا مفهرسًا بالرقم -len(s)، والحرف الأقصى يمينًا مفهرسًا بالرقم -1. مثال: طول السلسلة النصية "flower" هو 6، لذا فإن فهرس الحرف الأول باستخدام الفهرسة السالبة هو -6.
مفاهيم تطبيقية
الوصول إلى الأحرف في سلسلة نصية باستخدام الفهرسة
تقطيع السلاسل النصية
تقطيع السلسلة النصية يُستخدم عندما يحتاج المبرمج إلى الوصول إلى متتالية من الأحرف. هنا، يمكن استخدام عامل تقطيع السلاسل النصية. عند استخدام [a:b] مع اسم متغير سلسلة نصية، يتم إرجاع متتالية من الأحرف تبدأ من الفهرس a (شامل) حتى الفهرس b (غير شامل). كلا a و b اختياريان. إذا لم يتم توفير a أو b، فإن القيم الافتراضية تكون 0 و len(string) على التوالي.
مثال 8.2
الحصول على الدقائق
لنفترض أن قيمة الوقت معطاة بالصيغة "hh:mm" حيث "hh" يمثل الساعة و "mm" يمثل الدقائق. لاسترداد جزء الدقائق فقط من السلسلة النصية، يمكن استخدام الشِفرة التالية:
time_string = "13:46"
minutes = time_string[3:5]
print(minutes)
ناتج الشِفرة أعلاه هو:
46
مثال 8.3
الحصول على الساعة
لنفترض أن قيمة الوقت معطاة بالصيغة "hh:mm" حيث "hh" يمثل الساعة و "mm" يمثل الدقائق. لاسترداد جزء الساعة فقط من السلسلة النصية، يمكن استخدام الشِفرة التالية:
time_string = "14:50"
hour = time_string[:2]
print(hour)
ناتج الشِفرة أعلاه هو:
14
مفاهيم تطبيقية
الحصول على سلسلة فرعية باستخدام تقطيع السلاسل النصية
عدم قابلية تغيير السلاسل النصية
كائنات السلاسل النصية غير قابلة للتغيير، أي لا يمكن تعديل محتوياتها بعد إنشائها. لذلك لا يمكن تغيير الأحرف الفردية داخل السلسلة مباشرةً، بل يُنشأ كائن سلسلة نصية جديد بالتغييرات المطلوبة وتبقى السلسلة الأصلية كما هي.
مفاهيم تطبيقية
تعديل محتوى السلسلة النصية
جرّب بنفسك
تغيير رسالة الترحيب
بالنظر إلى السلسلة النصية "Hello my fellow
classmates" التي تحتوي على رسالة ترحيب، اطبع الكلمة الأولى عن طريق الحصول على بداية السلسلة النصية حتى (وبما في ذلك) الحرف الخامس. غيّر الكلمة الأولى في السلسلة النصية إلى "Hi" بدلاً من "hello" واطبع رسالة الترحيب مرة أخرى.
جرّب بنفسك
تعديل السلسلة النصية في مواقع محددة
بالنظر إلى متغير سلسلة نصية، string_variable، وقائمة من الفهارس، قم بإزالة الأحرف عند الفهارس المحددة واطبع السلسلة النصية الناتجة.
Input:
string_variable = "great"
indices = [0, 1]
Prints:
eat