8.3 البحث في السلاسل النصية واختبارها
أهداف التعلم
في نهاية هذا القسم، ينبغي أن تكون قادرًا على:
- استخدام العامل
inلتحديد ما إذا كانت سلسلة نصية معينة تحتوي على سلسلة فرعية. - استدعاء التابع
count()لعد عدد السلاسل الفرعية في سلسلة نصية معينة. - البحث في سلسلة نصية للعثور على سلسلة فرعية باستخدام التابع
find(). - استخدام التابع
index()للعثور على فهرس أول ظهور لسلسلة فرعية في سلسلة نصية معينة. - كتابة حلقة التكرار المحدد على السلاسل النصية باستخدام العامل
in.
العامل in
يمكن استخدام العامل المنطقي in للتحقق مما إذا كانت سلسلة نصية تحتوي على سلسلة نصية أخرى. يُرجع in القيمة True إذا كانت السلسلة النصية الأولى موجودة في السلسلة النصية الثانية، وFalse بخلاف ذلك.
مفاهيم تطبيقية
استخدام العامل in للعثور على السلاسل الفرعية
حلقة التكرار المحدد باستخدام العامل in
يمكن استخدام العامل in للتكرار على الأحرف في سلسلة نصية باستخدام حلقة التكرار المحدد. في كل تكرار لحلقة for، يتم قراءة حرف واحد وسيكون هو مُتغيِّر الحلقة لذلك التكرار.
مفاهيم تطبيقية
استخدام العامل in ضمن حلقة التكرار المحدد
count()
يحسب التابع count() عدد مرات ظهور سلسلة فرعية في سلسلة نصية معينة. إذا لم تكن السلسلة الفرعية المعطاة موجودة في السلسلة النصية المعطاة، تُرجَع القيمة 0.
مفاهيم تطبيقية
استخدام count() لعد عدد السلاسل الفرعية
find()
يُرجع التابع find() فهرس أول ظهور لسلسلة فرعية في سلسلة نصية معينة. إذا لم تكن السلسلة الفرعية موجودة في السلسلة النصية المعطاة، تُرجَع القيمة -1.
مفاهيم تطبيقية
استخدام find() لتحديد موقع سلسلة فرعية
index()
يعمل التابع index() بشكل مشابه للتابع find()، حيث يُرجع التابع فهرس أول ظهور لسلسلة فرعية في سلسلة نصية معينة. يفترض التابع index() أن السلسلة الفرعية موجودة في السلسلة النصية المعطاة؛ وإلا، فإنه يطلق خطأ ValueError.
مثال 8.4
الحصول على جزء الدقائق من الوقت
لنفترض أن قيمة الوقت معطاة كجزء من سلسلة نصية باستخدام التنسيق "hh:mm"، حيث يمثل "hh" الساعة ويمثل "mm" الدقائق. لاسترداد جزء الدقائق فقط من السلسلة النصية، يمكن استخدام الشِفرة التالية:
time_string = "The time is 12:50"
index = time_string.index(":")
print(time_string[index+1:index+3])
ناتج الشِفرة أعلاه هو:
50
مفاهيم تطبيقية
استخدام index() لتحديد موقع سلسلة فرعية
جرّب بنفسك
العثور على جميع المسافات
اكتب برنامجًا يقوم، عند إعطائه سلسلة نصية، بعدد أحرف المسافة في السلسلة النصية. واطبع أيضًا السلسلة النصية المعطاة بعد إزالة جميع المسافات منها.
Input: "This is great"
Prints:
2
Thisisgreat