دالة ()index في بايثون

21-02-23 أحمدُ عُبَيْد 1620 0

تقوم دالة ()index بإرجاع رقم فهرس أول ظهور لسلسلة فرعية ( نص عادي ) في السلسلة المحددة (حساسة لحالة الأحرف). إنها نفس دالة ()find باستثناء أنه إذا لم يتم العثور على السلسلة الفرعية ، فإنها تثير استثناءً خطأ ( ValueError ) إذا لم يتم العثور على السلسلة الفرعية أو إذا كان الفهرس خارج نطاق البحث.


طريقة صياغتها بهذا الشكل:

string.index(substring, start, end)

المعلمات ( الباراميترات ) :


  • السلسلة الفرعية ( substring ) :  ( مطلوب)  سلسلة فرعية يجب البحث عنها في السلسلة المحددة.

  • البداية ( start ) :  ( اختياري )  موضع البداية حيث يلزم فحص السلسلة الفرعية داخل السلسلة .  الافتراضي هو 0.

  • النهاية ( end ) : ( اختياري )  فهرس النهاية ضمن السلسلة التي ينتهي بها البحث. الافتراضي هو نهاية السلسلة,

قيمة الإرجاع:  تقوم دالة ()index بإرجاع عدد صحيح لرقم فهرس أول ظهور لسلسلة فرعية ( نص عادي ) في السلسلة المحددة.

الأخطاء والاستثناءات:


  • إذا لم يتم العثور على السلسلة الفرعية أو إذا كان الفهرس خارج نطاق البحث.


 سنقوم بإستخدام دالة ()index بدون المعلمات ( الباراميترات ) الاختيارية start ) و end ). سنستخدم فقط معلمة السلسة الفرعية ( substring ) للبحث عن رقم فهرس أول ظهور لسلسلة فرعية في السلسلة المحددة. 

في المثال التالي سنقوم بالبحث عن رقم فهرس أول ظهور لسلسلة الفرعية ( substring ) المتمثلة في كلمة( obaid),

مثال:

# السلسلة التي سيتم البحث فيها
string = "learn python With ahmed obaid"
# البحث في السلسلة المحددة عن رقم فهرس أول ظهور للسلسلة الفرعية وإرجاع عدد صحيح
print(string.index("obaid")

سيكون الناتج:

24

في المثال التالي سنقوم بإستحدام دالة ()index مع المعلمات ( الباراميترات ) الاختيارية start ) و end ).

مثال:

# السلسلة التي سيتم البحث فيها
string = "learn python With ahmed obaid"
# البحث في السلسلة المحددة عن رقم فهرس آخر ظهور للسلسلة الفرعية وإرجاع عدد صحيح
# مع الإشارة إلى أننا بدأنا عملية البحث من الفهرس رقم 2
print(string.index("py", 2))
# البحث في السلسلة المحددة عن رقم فهرس آخر ظهور للسلسلة الفرعية وإرجاع عدد صحيح
# مع الإشارة إلى أننا بدأنا عملية البحث من الفهرس رقم 0 الي فهرس النهاية رقم 10
print(string.index("learn", 0, 10))
# البحث في السلسلة المحددة عن رقم فهرس آخر ظهور للسلسلة الفرعية وإرجاع عدد صحيح
# مع الإشارة إلى أننا بدأنا عملية البحث من الفهرس رقم 2 اليي فهرس النهاية رقم 30
print(string.index("obaid", 10, 30))

سيكون الناتج:

6
0
24

سنحصل علي استثناءً خطأ ( ValueError ) إذا لم يتم العثور على السلسلة الفرعية أو إذا كان الفهرس خارج نطاق البحث.

مثال:

# السلسلة التي سيتم البحث فيها
string = "learn python With ahmed obaid"
# إذا لم يتم العثور على السلسلة الفرعية أو إذا كان الفهرس خارج نطاق البحث
# سنحصل علي استثناءً خطأ
print(string.index("Hello")

سيكون الناتج:

Traceback (most recent call last):
File "/usr/lib/python3.8/py_compile.py", line 144, in compile
code = loader.source_to_code(source_bytes, dfile or file,
File "<frozen importlib._bootstrap_external>", line 846, in source_to_code
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "./prog.py", line 5
print(string.index("Hello ")
^
SyntaxError: unexpected EOF while parsing

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.8/py_compile.py", line 150, in compile
raise py_exc
py_compile.PyCompileError: File "./prog.py", line 5
print(string.index("Hello ")
^
SyntaxError: unexpected EOF while parsing

مصادر خارجية:

الدوال المضمنة - وثائق بايثون الرسمية

أذا كان لديك أي اسئلة أو استفسارات اتركها في التعليقات 



الكلمات الدلالية


بايثون أنواع البيانات في بايثون السلاسل في بايثون الدوال التي تتعامل مع السلاسل دوال البحث في السلاسل النصية في بايثون دالة ()index

شارك المقال