Python طريقة العثور على السلسلة () مع الأمثلة
ما هي تفاصيل Python العثور على سلسلة ()؟
Python العثور على سلسلة () هي وظيفة متوفرة في Python تستخدم المكتبة للعثور على مؤشر أول ظهور لسلسلة فرعية من السلسلة المحددة. ستعيد دالة البحث عن السلسلة القيمة -1 بدلاً من طرح استثناء، إذا لم تكن السلسلة الفرعية المحددة موجودة في السلسلة المحددة.
بناء جملة Python العثور على سلسلة ()
بناء الجملة الأساسي ل Python وظيفة البحث () هي كما يلي:
string.find(substring,start,end)
معلمات طريقة البحث ().
فيما يلي ثلاث معلمات للدالة String 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() باستخدام وسيطة البداية
يمكنك البحث عن السلسلة الفرعية في السلسلة المحددة وتحديد موضع البداية، حيث سيبدأ البحث. يمكن استخدام معلمة البداية لنفسه.
سيحدد المثال موضع البداية على أنه 15، وfind() فيه Python ستبدأ الطريقة البحث من الموضع 15. هنا سيكون موضع النهاية هو طول السلسلة وسيبحث حتى نهاية السلسلة من 15 موضعًا فصاعدًا.
على سبيل المثال:
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 Tutorials Site. أفضل موقع لـ Python الدروس!" وسنحاول العثور على موضع البرامج التعليمية للسلسلة الفرعية باستخدام find() وrfind(). حدوث البرامج التعليمية في السلسلة مرتين.
فيما يلي مثال حيث يتم استخدام كل من 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() يعطي فهرس أول سلسلة فرعية من البرامج التعليمية التي يحصل عليها، وأن rfind() يعطي فهرس السلسلة الفرعية البرامج التعليمية الأخيرة.
Python فهرس السلسلة ()
استخدم Python فهرس السلسلة () هي وظيفة ستمنحك موضع السلسلة الفرعية المعطاة تمامًا مثل البحث (). والفرق الوحيد بين الاثنين هو أن الفهرس () سيطرح استثناءً إذا لم تكن السلسلة الفرعية موجودة في السلسلة وسيعود البحث () -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
في المثال أعلاه، نحاول العثور على موضع "اختبار" السلسلة الفرعية. السلسلة الفرعية غير موجودة في السلسلة المعطاة، وبالتالي باستخدام find()، نحصل على الموضع كـ -1، ولكن بالنسبة إلى Index()، فإنه يلقي خطأ كما هو موضح أعلاه.
للعثور على التواجد الإجمالي لسلسلة فرعية
للعثور على إجمالي عدد المرات التي حدثت فيها السلسلة الفرعية في السلسلة المحددة، سنستخدم وظيفة find() فيها Python. سيتم التكرار عبر السلسلة باستخدام حلقة 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 طريقة العثور على سلسلة فرعية هي سلسلة فرعية، أي السلسلة التي تريد البحث عنها، والبدء، والنهاية. قيمة البداية هي 0 بشكل افتراضي، وقيمة النهاية هي طول السلسلة.
- يمكنك البحث عن السلسلة الفرعية في السلسلة المحددة وتحديد موضع البداية، حيث سيبدأ البحث. يمكن استخدام معلمة البداية لنفسه.
- باستخدام معلمتي البداية والنهاية، سنحاول تقييد البحث، بدلاً من البحث في السلسلة بأكملها.
- استخدم Python وظيفة يشبه rfind() وظيفة find() مع الاختلاف الوحيد هو أن rfind() يعطي أعلى فهرس للسلسلة الفرعية المعطاة وfind() يعطي أدنى فهرس، أي الفهرس الأول. سيعيد كل من rfind() وfind() -1 إذا لم تكن السلسلة الفرعية موجودة.
- استخدم Python فهرس السلسلة () هي وظيفة أخرى ستمنحك موضع السلسلة الفرعية المعطاة تمامًا مثل البحث (). والفرق الوحيد بين الاثنين هو أن الفهرس () سيطرح استثناءً إذا لم تكن السلسلة الفرعية موجودة في السلسلة وسيعود البحث () -1.
- يمكننا الاستفادة من find() للعثور على عدد التواجد الإجمالي لسلسلة فرعية في سلسلة معينة.
" تعلم المزيد عن Python تقسيم السلسلة ()
