str.find() البحث عن موضع سلسلة فرعية

آخر تحديث: 2026-09-22

str.find() البحث عن موضع سلسلة فرعية

str.find(sub[, start[, end]]) تُرجع فهرس أول ظهور لـ sub؛ وتُرجع -1 إذا لم تُوجد (دون رفع استثناء).

التصنيفدوال النصوص
النوعدوال الأنواع المدمجة
إصدار بايثونall

📝 الصياغة

str.find(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, or -1 if not found.

يعدّل الكائن الأصلي:لا (يُعيد كائنًا جديدًا)

▶ مثال

عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:

المخرجات:

2
-1
المزيد من الحالات قادم قريباً — تابعونا.

❓ أسئلة شائعة

Qهل يُثير find() استثناءً عندما لا تُعثر على السلسلة الفرعية؟
Aلا. هذا هو أكبر فرق بينه وبين index(): find() يُرجع -1 عندما لا يُعثر عليها. فضِّل find() عندما لا تكون متأكدًا من وجود السلسلة الفرعية.
Qكيف أختار بين find() و index()؟
Aاستخدم find() عندما تريد فقط معرفة «هل توجد وأين» (يُرجع -1 دون خطأ)؛ واستخدم index() عندما يجب أن توجد ويكون عدم العثور عليها خطأ برمجيًا (يُثير ValueError).
Qكيف أجد موضع التكرار الثاني؟
Aاستخدم الوسيط start لتجاوز الأول: 'banana'.find('a', 2) يبدأ البحث من الفهرس 2 ويُرجِع 3. وللعثور على آخر تكرار استخدم rfind().
Qماذا تُرجع find('') مع سلسلة فرعية فارغة؟
Aإنها تُرجع 0 (أو قيمة الوسيط start)، لأن السلسلة الفرعية الفارغة تتطابق في أي موضع.
Web-Tutorial.com

فريق Web-Tutorial التقني

منصة دروس برمجية يديرها عدة مطورين. كل درس يتم كتابته ومراجعته بواسطة مطورين متخصصين في المجال. نعمل على ضمان دقة وموثوقية المحتوى — إذا لاحظت أي مشكلة، فيرجى إخبارنا.

100%