Python سلاسل: استبدال، الانضمام، تقسيم، Reverse

⚡ ملخص ذكي

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

  • 🧵 السلاسل النصية ككائنات: Python تتعامل مع كل سلسلة نصية ككائن، لذا ترتبط الطرق مباشرة بمتغيرات السلسلة النصية.
  • 🔤 تحويل حالة الأحرف: تقوم الدوال upper() و lower() و capitalize() بإعادة تنسيق حالة الأحرف دون تغيير السلسلة الأصلية.
  • 🔗 ضم وفصل: تقوم الدالة join() بربط الأحرف باستخدام فاصل، بينما تقوم الدالة split() بتقسيم النص إلى قائمة من السلاسل الفرعية.
  • 🔒 ثبات: تُعيد الدالة replace() سلسلة نصية جديدة لأن Python لا يمكن تغيير النصوص في مكانها.
  • 🤖 مساعدة الذكاء الاصطناعي: تقوم مساعدات البرمجة المدعومة بالذكاء الاصطناعي بإنشاء وشرح طرق معالجة النصوص، مما يسرع من مهام معالجة النصوص ومعالجة اللغة الطبيعية.

Python استبدال السلاسل النصية، ضم، تقسيم Reverse

In Pythonكل شيء عبارة عن كائن، والسلاسل النصية هي كائنات أيضًا. Python يمكن إنشاء السلسلة ببساطة عن طريق وضع الأحرف بين علامتي اقتباس مزدوجتين.

فمثلا:

فار = "مرحبا بالعالم!"

الوصول إلى القيم في السلاسل

Python لا يدعم نوع الحرف; يتم التعامل مع هذه كسلاسل طولها واحد، وتعتبر أيضًا سلسلة فرعية.

نستخدم الأقواس المربعة للتقطيع مع الفهرس أو الفهارس للحصول على سلسلة فرعية.

var1 = "Guru99!"
var2 = "Software Testing"
print ("var1[0]:",var1[0])
print ("var2[1:5]:",var2[1:5])

الإخراج:

var1[0]: G
var2[1:5]: oftw 

سلسلة مختلفة Operaالاختصاصات

توجد عوامل تشغيل مختلفة للسلاسل النصية يمكن استخدامها بطرق مختلفة، مثل دمج سلسلة نصية مختلفة.

لنفترض أن a = guru و b = 99، فإن a + b = "guru99". وبالمثل، إذا كنت تستخدم a * 2، فستحصل على "GuruGuruوبالمثل، يمكنك استخدام عوامل تشغيل أخرى في سلسلة نصية.

المُشغل الوصف مثال
[] الشريحة – تُعطي الحرف من الفهرس المُعطى سيعطي a[1] الحرف "u" من الكلمة Guru على هذا النحو ( 0=G، 1=u، 2=r و 3=u)

x="Guru"
print (x[1])
[ : ] شريحة النطاق - تُعطي الأحرف من النطاق المحدد x [1:3] سيعطي "ur" من الكلمة Guruتذكر أنه لن يأخذ في الاعتبار الصفر الذي يمثل G، بل سيأخذ في الاعتبار الكلمة التي تليه وهي ur.

x="Guru" 
print (x[1:3])
in العضوية - تُرجع القيمة "صحيح" إذا كان الحرف موجودًا في السلسلة المُعطاة حرف u موجود في كلمة Guru وبالتالي ستكون النتيجة 1 (صحيح)

x="Guru" 
print ("u" in x)
ليس في العضوية - تُرجع القيمة "صحيح" إذا لم يكن الحرف موجودًا في السلسلة المُعطاة الحرف l غير موجود في كلمة word Guru وبالتالي سيعطي 1

x="Guru" 
print ("l" not in x)
ص / ص تمنع السلسلة الأولية المعنى الفعلي لأحرف الهروب. طباعة مطبوعات r'\n' \n وطباعة مطبوعات R'/n' \n
% - يستخدم لتنسيق السلسلة %r – يُدرج التمثيل النصي القياسي للكائن (أي repr(o)) %s – يُدرج التمثيل النصي للعرض للكائن (أي str(o)) %d – يُنسق رقمًا للعرض سيكون إخراج هذا الرمز هو "المعلم 99".

name = 'guru'
number = 99
print ('%s %d' % (name,number))
+ فإنه يسلسل 2 سلاسل فهو يسلسل السلاسل ويعطي النتيجة

x="Guru" 
y="99" 
print (x+y)
* كرر يقوم بطباعة الحرف مرتين.

x="Guru" 
y="99" 
print (x*2)

بعض الأمثلة الأخرى

يمكنك تحديث Python يمكن تغيير السلسلة النصية عن طريق إعادة تعيين متغير إلى سلسلة نصية أخرى. يمكن أن تكون القيمة الجديدة مرتبطة بقيمة سابقة، أو بسلسلة نصية مختلفة تمامًا.

x = "Hello World!"
print(x[:6]) 
print(x[0:6] + "Guru99")

الإخراج:

Hello
Hello Guru99

ملاحظات: – يؤدي استخدام Slice [:6] أو [0:6] إلى نفس التأثير.

Python طريقة استبدال السلسلة ().

تقوم الدالة replace() بإرجاع نسخة من السلسلة النصية حيث تم استبدال قيم السلسلة القديمة بالقيمة الجديدة.

oldstring = 'I like Guru99' 
newstring = oldstring.replace('like', 'love')
print(newstring)

الإخراج:

I love Guru99

تغيير سلاسل الأحرف الكبيرة والصغيرة

In Python، يمكنك أيضًا تغيير السلسلة إلى أحرف كبيرة أو أحرف صغيرة.

string="python at guru99"
print(string.upper())

الإخراج:

PYTHON AT GURU99

وبالمثل، يمكنك أيضًا استخدام وظائف أخرى مثل capitalize().

string="python at guru99"		
print(string.capitalize())

الإخراج:

Python at guru99

يمكنك أيضًا تحويل النص إلى أحرف صغيرة.

string="PYTHON AT GURU99"
print(string.lower())

الإخراج:

python at guru99

استخدام وظيفة "الانضمام" للسلسلة

تُعدّ دالة join() طريقةً أكثر مرونةً لدمج السلاسل النصية. باستخدام هذه الدالة، يمكنك إضافة أي حرف إلى السلسلة.

على سبيل المثال، إذا كنت تريد إضافة نقطتين (:) بعد كل حرف في السلسلة "Pythonيمكنك استخدام الكود التالي.

print(":".join("Python"))

الإخراج:

P:y:t:h:o:n

Revسلسلة ersing

باستخدام الدالة reversed()، يمكنك عكس ترتيب السلسلة النصية. على سبيل المثال، إذا كانت لدينا السلسلة النصية "12345"، فقم بتطبيق الكود الخاص بالدالة reversed() كما هو موضح أدناه.

string="12345"		
print(''.join(reversed(string)))

الإخراج:

54321

سلاسل الانقسام

سلاسل الانقسام هي وظيفة أخرى يمكن تطبيقها فيها Pythonلنرى ذلك بالنسبة للسلسلة النصية "guru99 career guru99". أولاً، سنقوم بتقسيم السلسلة باستخدام الأمر word.split للحصول على النتيجة.

word="guru99 career guru99"		
print(word.split(' '))

الإخراج:

['guru99', 'career', 'guru99']

لفهم هذا بشكل أفضل، سنرى مثالاً آخر على عملية الفصل. بدلاً من المسافة (' ')، سنستبدلها بـ ('r')، وسيؤدي ذلك إلى فصل السلسلة عند ذكر 'r' فيها.

word="guru99 career guru99"		
print(word.split('r'))

الإخراج:

['gu', 'u99 ca', 'ee', ' gu', 'u99']

ملاحظة هامة: In Python، السلاسل النصية غير قابلة للتغيير.

ضع في اعتبارك الكود التالي:

x = "Guru99"
x.replace("Guru99","Python")
print(x)

الإخراج:

Guru99

سيعود الأمر. Guru99. هذا لأن x.replace(“Guru99 بوصةPython") يعود نسخة من X مع إجراء تعديلات.

ستحتاج إلى استخدام الكود التالي لملاحظة التغييرات.

x = "Guru99"
x = x.replace("Guru99","Python")
print(x)

الإخراج:

Python

الرموز المذكورة أعلاه هي Python ثلاثة أمثلة. إذا كنت ترغب في تشغيلها في Python 2- يرجى الاطلاع على الكود التالي.

Python 2 مثال

#Accessing Values in Strings
var1 = "Guru99!"
var2 = "Software Testing"
print "var1[0]:",var1[0]
print "var2[1:5]:",var2[1:5]
#Some more examples
x = "Hello World!"
print x[:6] 
print x[0:6] + "Guru99"
#Python String replace() Method
oldstring = 'I like Guru99' 
newstring = oldstring.replace('like', 'love')
print newstring
#Changing upper and lower case strings
string="python at guru99"
print string.upper()
string="python at guru99"		
print string.capitalize()
string="PYTHON AT GURU99"
print string.lower()
#Using "join" function for the string
print":".join("Python")		
#Reversing String
string="12345"		
print''.join(reversed(string))
#Split Strings
word="guru99 career guru99"		
print word.split(' ')
word="guru99 career guru99"		
print word.split('r')
x = "Guru99"
x.replace("Guru99","Python")
print x
x = "Guru99"
x = x.replace("Guru99","Python")
print x

الإخراج:

var1[0]: G
var2[1:5]: oftw
Hello
Hello Guru99
I love Guru99
PYTHON AT GURU99
Python at guru99
python at guru99
P:y:t:h:o:n
54321
['guru99', 'career', 'guru99']
['gu', 'u99 ca', 'ee', ' gu', 'u99']
Guru99
Python

Python لقد قدمت وظيفة .format() التي تتخلص من استخدام %d وما إلى ذلك لتنسيق السلاسل النصية.

" تعلم المزيد عن Python تقسيم السلسلة ()

الأسئلة الشائعة

السلاسل النصية F هي قيم حرفية مسبوقة بالحرف f، وتتضمن متغيرات وتعبيرات داخل أقواس معقوفة. Python 3.6 لقد كانت أسرع وأكثر قابلية للقراءة من عامل النسبة المئوية أو طريقة التنسيق ().

استخدم الدالة strip() لإزالة المسافات البيضاء الزائدة في بداية ونهاية النص، وlstrip() لإزالة المسافات من اليسار، وrstrip() لإزالة المسافات من اليمين. تمرير الأحرف، مثل strip('xy')، يزيل تلك الأحرف تحديدًا بدلًا من المسافات.

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

تُعيد الدالة count() عدد مرات ظهور سلسلة فرعية، على سبيل المثال 'guru99 guru99'.count('guru99') تُعيد 2. يمكنك أيضًا تمرير مؤشرات البداية والنهاية الاختيارية للعد داخل شريحة.

استخدم الدالتين `startswith()` و`endswith()`، اللتين تُرجعان القيمة `True` أو `False`. تقبل كلتاهما زوجًا من الأحرف، لذا فإن `text.startswith(('http', 'https'))` تختبر عدة بادئات في آنٍ واحد. هذه الاختبارات حساسة لحالة الأحرف، لذا يُنصح بتطبيع الأحرف باستخدام `lower()` أولًا.

يقارن عامل المقارنة == قيم السلاسل النصية، ويعيد القيمة True عند تطابق الأحرف. أما عامل المقارنة is فيقارن الهوية، أي ما إذا كان اسمان يشيران إلى نفس الكائن في الذاكرة. وللمقارنة النصية اليومية، استخدم دائمًا ==.

تُنشئ مساعدات البرمجة المدعومة بالذكاء الاصطناعي شيفرةً لمعالجة النصوص من خلال توجيهات بلغة بسيطة، وتشرح الطرق غير المألوفة، وتقترح بدائل أكثر سلاسة. في مجالَي التعلّم الآلي ومعالجة اللغة الطبيعية، تعمل عمليات مثل split() و lower() و replace() على توحيد النص الخام قبل إدخاله إلى النماذج.

نعم. يقوم GitHub Copilot بإكمال الدوال تلقائيًا، مثل replace() وjoin() وsplit()، بناءً على تعليق يصف هدفك. أما أدوات الذكاء الاصطناعي المتقدمة فتتجاوز ذلك، حيث تعيد هيكلة البرنامج النصي بالكامل، مثل swap.ping حلقات لـ join() أو f-strings — ثم تشغيل اختباراتك.

تلخيص هذه التدوينة بـ: