عمليات تلاعب السلسلة هي مهمة شائعة في أي لغة برمجة. تقدم لغة Python طريقتين شائعتين للتحقق مما إذا كانت سلسلة تحتوي على سلسلة أخرى أم لا.
تدعم سلسلة Python العامل in. لذا يمكننا استخدامها للتحقق مما إذا كانت سلسلة جزءًا من سلسلة أخرى أم لا. بناءً على العامل in، يكون بناء الجملة كما يلي:
sub in str
إذا كانت السلسلة الفرعية “sub” جزءًا من السلسلة “str”، يعيد النتيجة True
، وإلا يعيد False
. دعونا نلقي نظرة على بعض الأمثلة على استخدام العامل in
في لغة Python.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
الناتج:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
إذا لم تكن على دراية بسلاسل الـ f المسبوقة في Python، فهي وسيلة جديدة لتنسيق السلسلة تم إدخالها في Python 3.6. يمكنك قراءة المزيد حولها في سلاسل الـ f في لغة Python.
عند استخدام العامل in، يُستدعى داخليًا دالة __contains__(). يمكننا استخدام هذه الدالة مباشرة أيضًا، ولكنه من المفضل استخدام العامل in لأغراض القراءة.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
الناتج:
s contains a = True
s contains A = False
s contains X = False
استخدام الوظيفة find() للتحقق مما إذا كانت سلسلة تحتوي على متغير فرعي آخر
يمكننا أيضًا استخدام وظيفة find() للسلسلة للتحقق مما إذا كانت السلسلة تحتوي على متغير فرعي أم لا. تعيد هذه الوظيفة موضع الفهرس الأول حيث يتم العثور على المتغير الفرعي، وإلا فإنها تعيد -1.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
الناتج:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
يمكنك التحقق من البرنامج النصي الكامل لبايثون والمزيد من أمثلة بايثون من مستودع GitHub الخاص بنا.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string