str.index() البحث عن سلسلة فرعية (خطأ إذا لم تُوجد)
آخر تحديث: 2026-09-22
str.index() البحث عن سلسلة فرعية (خطأ إذا لم تُوجد)
str.index(sub) تشبه find()، لكنها ترفع ValueError عند عدم العثور عليها.
| التصنيف | دوال النصوص |
|---|---|
| النوع | دوال الأنواع المدمجة |
| إصدار بايثون | all |
📝 الصياغة
str.index(sub[, start[, end]])
⚙️ المعاملات
| sub مطلوب | The substring to search for. |
|---|---|
| start اختياري | Start index of the range (inclusive); None means the beginning.(القيمة الافتراضية:None) |
| end اختياري | End index of the range (exclusive); None means the end.(القيمة الافتراضية:None) |
القيمة المُعادة:int. The lowest index where sub is found; raises ValueError if absent.
يعدّل الكائن الأصلي:لا (يُعيد كائنًا جديدًا)
💥 الاستثناءات
ValueError— Raised when sub is not found in the range.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
2
not found: substring not found
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما الفرق بين index() و find()؟
Aسلوكهما متطابق تقريبًا، مع فرق واحد: عندما لا يُعثر على السلسلة، يُرجع find() القيمة -1 بينما يُثير index() خطأ ValueError: substring not found.
Qمتى يجب أن أستخدم index()؟
Aاستخدم index() عندما «يجب أن توجد» السلسلة الفرعية ويكون عدم العثور عليها خطأ منطقيًا، ليكشف الاستثناء المشكلة فورًا؛ وإلا فإن find() أكثر أمانًا.
Qكيف أتجنب أن يُثير index() استثناءً؟
Aتحقق أولًا باستخدام in: if 'll' in s: print(s.index('ll'))؛ أو التقط ValueError باستخدام try/except.