طريقة العثور على سلسلة بايثون () مع أمثلة

ما هي سلسلة بايثون تجد ()؟

العثور على سلسلة بايثون () هي وظيفة متاحة في مكتبة بايثون للعثور على فهرس التواجد الأول لسلسلة فرعية من السلسلة المحددة. ستُرجع الدالة string find() -1 بدلاً من throwing استثناء، إذا كانت السلسلة الفرعية المحددة غير موجودة في السلسلة المحددة.

بناء جملة سلسلة بايثون find()

بناء الجملة الأساسي لوظيفة Python find() كما يلي:

string.find(substring,start,end)

معلمات طريقة البحث ().

فيما يلي ثلاث معلمات للدالة String find() في Python:

  • سلسلة فرعية: السلسلة الفرعية التي تريد البحث عنها في السلسلة المحددة.
  • بداية: (اختياري) قيمة البداية التي سيبدأ منها البحث عن السلسلة الفرعية. بشكل افتراضي، هو 0.
  • النهاية: (اختياري) قيمة النهاية التي سينتهي فيها البحث عن السلسلة الفرعية. بشكل افتراضي، القيمة هي طول السلسلة.

مثال على طريقة find() بالقيم الافتراضية

المعلمات التي تم تمريرها إلى طريقة Python find() هي سلسلة فرعية، أي السلسلة التي تريد البحث عنها، والبدء، والنهاية. قيمة البداية هي 0 بشكل افتراضي، وقيمة النهاية هي طول السلسلة.

في هذا المثال، سوف نستخدم طريقة find() في بايثون مع القيم الافتراضية.

سوف تبحث طريقة find () عن السلسلة الفرعية وتعطي موضع التواجد الأول للسلسلة الفرعية. الآن، إذا كانت السلسلة الفرعية موجودة عدة مرات في السلسلة المحددة، فستظل ستعيد لك فهرس أو موضع السلسلة الأولى.

على سبيل المثال:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

الإخراج:

The position of Tutorials is at: 12

مثال على find() باستخدام وسيطة البداية

يمكنك البحث عن السلسلة الفرعية في السلسلة المحددة وتحديد موضع البداية، حيث سيبدأ البحث. يمكن استخدام معلمة البداية لنفسه.

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

على سبيل المثال:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

الإخراج:

The position of Tutorials is at 48

مثال على find() باستخدام وسيطتي البداية والنهاية

باستخدام معلمة البداية والنهاية، سنحاول تقييد البحث بدلاً من حد ذاتهarchiنانوغرام السلسلة بأكملها.

على سبيل المثال:

mystring = "Meet Guru99 Tutorials Site.Best 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 عندما لا نجد السلسلة الفرعية التي نحن فيهاarchiنانوغرام ل.

على سبيل المثال:

mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!"
print("The position of Best site is at:", mystring.find("Best site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

الإخراج:

The position of Best site is at: 27
The position of Guru99 is at: -1

سلسلة بايثون rfind ()

دالة Python rfind() تشبه وظيفة find() مع الاختلاف الوحيد هو أن rfind() يعطي أعلى فهرس للسلسلة الفرعية المعطاة وfind() يعطي أدنى فهرس، أي الفهرس الأول. سيعيد كل من rfind() وfind() -1 إذا لم تكن السلسلة الفرعية موجودة.

في المثال أدناه، لدينا سلسلة "Meet Guru99 Tutorials Site. أفضل موقع ل دروس بايثون!" وسنحاول العثور على موضع البرامج التعليمية للسلسلة الفرعية باستخدام find() وrfind(). حدوث البرامج التعليمية في السلسلة مرتين.

فيما يلي مثال حيث يتم استخدام كل من find() و rfind().

mystring = "Meet Guru99 Tutorials Site.Best 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() يعطي فهرس أول سلسلة فرعية من البرامج التعليمية التي يحصل عليها، وأن rfind() يعطي فهرس السلسلة الفرعية البرامج التعليمية الأخيرة.

فهرس سلسلة بايثون ()

فهرس سلسلة Python () هو وظيفة ستمنحك موضع السلسلة الفرعية المعطاة تمامًا مثل find (). والفرق الوحيد بين الاثنين هو أن الفهرس () سيطرح استثناءً إذا لم تكن السلسلة الفرعية موجودة في السلسلة وسيعود البحث () -1.

فيما يلي مثال عملي يوضح سلوك الفهرس () والعثور على ().

mystring = "Meet Guru99 Tutorials Site.Best 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.Best 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

في المثال أعلاه، نحاول العثور على موضع "اختبار" السلسلة الفرعية. السلسلة الفرعية غير موجودة في السلسلة المعطاة، وبالتالي باستخدام find()، نحصل على الموضع كـ -1، ولكن بالنسبة إلى Index()، فإنه يلقي خطأ كما هو موضح أعلاه.

للعثور على التواجد الإجمالي لسلسلة فرعية

للعثور على إجمالي عدد المرات التي حدثت فيها السلسلة الفرعية في السلسلة المعطاة، سنستخدم وظيفة find() في بايثون. سيتم التكرار عبر السلسلة باستخدام حلقة for من 0 حتى نهاية السلسلة. سيتم الاستفادة من معلمة startIndex للبحث ().

ستتم تهيئة المتغيرات startIndex والعدد إلى 0. وسيتحقق Inside for –loop مما إذا كانت السلسلة الفرعية موجودة داخل السلسلة المعطاة باستخدام find() وstartIndex كـ 0.

القيمة التي تم إرجاعها من find () إن لم تكن -1، ستقوم بتحديث مؤشر البداية إلى الفهرس حيث تم العثور على السلسلة وأيضًا زيادة قيمة العدد.

هذا مثال عملي:

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 string find() في العثور على فهرس التواجد الأول للسلسلة الفرعية في السلسلة المحددة. سيعود -1 إذا كانت السلسلة الفرعية غير موجودة.
  • المعلمات التي تم تمريرها إلى طريقة Python find substring هي سلسلة فرعية، أي السلسلة التي تريد البحث عنها والبدء والنهاية. قيمة البداية هي 0 بشكل افتراضي، وقيمة النهاية هي طول السلسلة.
  • يمكنك البحث عن السلسلة الفرعية في السلسلة المحددة وتحديد موضع البداية، حيث سيبدأ البحث. يمكن استخدام معلمة البداية لنفسه.
  • باستخدام معلمة البداية والنهاية، سنحاول تقييد البحث بدلاً من حد ذاتهarchiنانوغرام السلسلة بأكملها.
  • دالة بايثون يشبه rfind() وظيفة find() مع الاختلاف الوحيد هو أن rfind() يعطي أعلى فهرس للسلسلة الفرعية المعطاة وfind() يعطي أدنى فهرس، أي الفهرس الأول. سيعيد كل من rfind() وfind() -1 إذا لم تكن السلسلة الفرعية موجودة.
  • يعد فهرس سلسلة Python () وظيفة أخرى ستمنحك موضع السلسلة الفرعية المعطاة تمامًا مثل find (). والفرق الوحيد بين الاثنين هو أن الفهرس () سيطرح استثناءً إذا لم تكن السلسلة الفرعية موجودة في السلسلة وسيعود البحث () -1.
  • يمكننا الاستفادة من find() للعثور على عدد التواجد الإجمالي لسلسلة فرعية في سلسلة معينة.

" تعلم المزيد عن تقسيم سلسلة بايثون ()