Python طريقة العثور على السلسلة () مع الأمثلة
⚡ ملخص ذكي
Python الدالة `find()` هي دالة مدمجة تُعيد فهرس أول ظهور لسلسلة فرعية داخل سلسلة نصية. تُعيد الدالة القيمة -1 في حال عدم وجود السلسلة الفرعية، لتجنب حدوث استثناءات.
ما هي تفاصيل Python العثور على سلسلة ()؟
Python العثور على سلسلة () هي وظيفة متاحة في Python مكتبة لإيجاد فهرس أول ظهور لسلسلة فرعية ضمن سلسلة نصية معينة. تُرجع الدالة find() القيمة -1 بدلاً من طرح استثناء عندما لا تكون السلسلة الفرعية المحددة موجودة في السلسلة النصية المعطاة. وهي إحدى... Pythonالأكثر استخدامًا طرق السلسلة لتحديد موقع النص.
بناء جملة Python العثور على سلسلة ()
البنية الأساسية لملف Python وظيفة البحث () هي كما يلي:
string.find(substring,start,end)
معلمات طريقة البحث ().
فيما يلي المعاملات الثلاثة للدالة find() في Python:
- سلسلة فرعية: السلسلة الفرعية التي تريد البحث عنها في السلسلة المعطاة.
- بداية(اختياري) قيمة البداية التي سيبدأ منها البحث عن السلسلة الفرعية. القيمة الافتراضية هي 0.
- النهاية(اختياري) القيمة النهائية التي سينتهي عندها البحث عن السلسلة الفرعية. القيمة الافتراضية هي طول السلسلة.
مثال على طريقة find() بالقيم الافتراضية
المعلمات التي تم تمريرها إلى Python تتضمن دالة find() السلسلة الفرعية، أي السلسلة التي تريد البحث عنها، بالإضافة إلى نقطتي البداية والنهاية. قيمة البداية هي 0 افتراضيًا، وقيمة النهاية هي طول السلسلة.
في هذا المثال، سنستخدم طريقة find() في Python مع القيم الافتراضية.
ستبحث الدالة find() عن السلسلة الفرعية وتُحدد موضع أول ظهور لها. حتى لو تكررت السلسلة الفرعية عدة مرات في السلسلة النصية المُعطاة، فستُعيد الدالة فهرس أو موضع أول ظهور لها.
على سبيل المثال:
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))
الإخراج:
The position of Tutorials is at: 12
مثال على find() باستخدام وسيطة البداية
يمكنك البحث عن السلسلة الفرعية في السلسلة المعطاة وتحديد موضع البداية الذي سيبدأ منه البحث. يمكن استخدام مُعامل البداية لهذا الغرض.
يحدد المثال أدناه موضع البداية على أنه 20، وطريقة البحث () في Python سيبدأ البحث من الموضع 20. هنا، سيكون موضع النهاية هو طول السلسلة، لذلك يبحث حتى نهاية السلسلة من الموضع 20 فصاعدًا.
على سبيل المثال:
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
الإخراج:
The position of Tutorials is at 48
مثال على find() باستخدام وسيطتي البداية والنهاية
باستخدام معلمات البداية والنهاية، يمكننا تحديد نطاق البحث بدلاً من البحث في السلسلة بأكملها.
على سبيل المثال:
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
الإخراج:
The position of Tutorials is at 12
مثال على استخدام دالة find() للعثور على موضع سلسلة فرعية معينة في سلسلة نصية
نعلم أن الدالة `find()` تساعدنا في إيجاد فهرس أول ظهور لسلسلة فرعية. تُرجع الدالة القيمة -1 إذا لم تكن السلسلة الفرعية موجودة في السلسلة النصية المُعطاة. يوضح المثال أدناه الفهرس عندما تكون السلسلة النصية موجودة، والقيمة -1 عندما لا تكون السلسلة الفرعية التي نبحث عنها موجودة.
على سبيل المثال:
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of أفضل site is at:", mystring.find("أفضل site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))
الإخراج:
The position of أفضل site is at: 27 The position of Guru99 is at: -1
Python سلسلة rfind()
استخدم Python تُشبه الدالة rfind() الدالة find()، والفرق الوحيد بينهما هو أن rfind() تُعطي أعلى فهرس للسلسلة الفرعية المُعطاة، بينما تُعطي find() أدنى فهرس، أي الفهرس الأول. تُعيد كلتا الدالتين rfind() و find() القيمة -1 إذا لم تكن السلسلة الفرعية موجودة.
في المثال أدناه، لدينا سلسلة نصية "Meet" Guru99 موقع الدروس. أفضل موقع ل Python الدروس"!" وسيحاول البرنامج إيجاد موضع السلسلة الفرعية "Tutorials" باستخدام الدالتين find() و rfind(). تظهر السلسلة الفرعية "Tutorials" مرتين في السلسلة.
فيما يلي مثال حيث يتم استخدام كل من find() و rfind().
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
الإخراج:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
يُظهر الناتج أن الدالة find() تعطي فهرس أول سلسلة فرعية Tutorials التي تجدها، بينما تعطي الدالة rfind() الفهرس الأخير للسلسلة الفرعية Tutorials.
Python فهرس السلسلة ()
استخدم Python الدالة `index()` تُعيد موضع السلسلة الفرعية المُعطاة، تمامًا مثل الدالة `find()`. الفرق الوحيد بينهما هو أن `index()` تُطلق استثناءً إذا لم تكن السلسلة الفرعية موجودة في السلسلة، بينما تُعيد `find()` القيمة -1.
فيما يلي مثال عملي يوضح سلوك الفهرس () والعثور على ().
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
الإخراج:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
نحصل على نفس الموضع باستخدام كل من الدالتين find() و index(). لنرَ مثالاً عندما لا تكون السلسلة الفرعية المُعطاة موجودة في السلسلة.
mystring = "Meet Guru99 Tutorials Site.أفضل site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))
الإخراج:
The position of Tutorials using find() : -1
Traceback (most recent call last):
File "task1.py", line 3, in <module>
print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found
في المثال أعلاه، نحاول إيجاد موضع السلسلة الفرعية "test". هذه السلسلة غير موجودة في السلسلة الأصلية، لذا باستخدام دالة find() نحصل على الموضع -1، ولكن عند استخدام دالة index() نحصل على خطأ، كما هو موضح أعلاه.
للعثور على التواجد الإجمالي لسلسلة فرعية
لإيجاد العدد الإجمالي لمرات ظهور سلسلة فرعية معينة في السلسلة المعطاة، سنستخدم الدالة find() في Pythonسنقوم بالمرور على السلسلة باستخدام حلقة for من 0 حتى نهاية السلسلة، مع الاستفادة من معلمة startIndex للدالة find().
سيتم تهيئة المتغيرين startIndex و count إلى 0. داخل حلقة for، سنتحقق مما إذا كانت السلسلة الفرعية موجودة داخل السلسلة المعطاة باستخدام find() مع startIndex = 0.
إذا لم تكن القيمة المُعادة من الدالة find() هي -1، فسيتم تحديث startIndex إلى الفهرس الذي تم العثور فيه على السلسلة، وسيتم أيضًا زيادة قيمة العد.
هذا مثال عملي:
my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
k = my_string.find('test', startIndex)
if(k != -1):
startIndex = k+1
count += 1
k = 0
print("The total count of substring test is: ", count )
الإخراج:
The total count of substring test is: 6
" تعلم المزيد عن Python تقسيم السلسلة ()

