البرمجة

دوال السلاسل النصية في بايثون

مقدمة إلى دوال التعامل مع السلاسل النصية في بايثون 3

تشكل السلاسل النصية (Strings) أحد أهم أنواع البيانات الأساسية في لغة بايثون، وتستخدم بشكل واسع في جميع أنواع البرمجة من معالجة البيانات البسيطة إلى البرمجة النصية المعقدة وتطوير الواجهات وتطبيقات الويب. تتميز بايثون 3 بتوفير مجموعة قوية من الأدوات والدوال المدمجة التي تتيح للمطور التعامل مع النصوص بكفاءة ودقة عالية. إن فهم كيفية استخدام هذه الدوال يمثل حجر الأساس لأي مبرمج يسعى إلى كتابة شيفرات نظيفة وفعالة لمعالجة البيانات النصية.

تعريف السلاسل النصية في بايثون

السلسلة النصية في بايثون هي تسلسل من الأحرف (characters) المحاطة بعلامات اقتباس مفردة ' أو مزدوجة ". ويمكن تمثيلها أيضاً باستخدام ثلاث علامات اقتباس لإنشاء سلسلة متعددة الأسطر:

python
s1 = 'مرحبا' s2 = "أهلاً بك" s3 = '''هذا نص يمتد على عدة أسطر'''

كل سلسلة نصية في بايثون هي كائن (object) من نوع str، مما يعني أنها تحتوي على العديد من الأساليب (methods) والدوال (functions) التي يمكن استخدامها مباشرة.

خصائص السلاسل النصية

من المهم إدراك بعض الخصائص الجوهرية للسلاسل النصية:

  • غير قابلة للتغيير (Immutable): لا يمكن تعديل سلسلة نصية بعد إنشائها.

  • تدعم التكرار والتقطيع (Indexing and Slicing): يمكن الوصول إلى أي حرف داخل السلسلة باستخدام الفهارس.

  • تدعم الحلقات الشرطية والتكرارية.

التقطيع والفهرسة في السلاسل النصية

يبدأ فهرس السلسلة النصية من الصفر. إذا كانت لدينا سلسلة نصية s = "Python"، فإن s[0] ستعيد الحرف 'P'.

التقطيع (Slicing):

python
text = "Python Programming" print(text[0:6]) # Python print(text[7:]) # Programming print(text[-1]) # g

الدوال المدمجة في بايثون لمعالجة السلاسل النصية

توفر بايثون مجموعة واسعة من الدوال المدمجة المخصصة للسلاسل النصية، منها ما يلي:

1. len()

تُستخدم للحصول على عدد الأحرف في السلسلة النصية:

python
text = "Python" print(len(text)) # 6

2. str()

تحوّل القيم الرقمية أو غيرها إلى سلسلة نصية:

python
num = 123 print(str(num)) # "123"

3. type()

تُستخدم لمعرفة نوع الكائن:

python
text = "مرحبا" print(type(text)) #

دوال وأساليب السلاسل النصية (String Methods)

1. lower() و upper()

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

python
text = "Python" print(text.lower()) # python print(text.upper()) # PYTHON

2. capitalize() و title()

  • capitalize() تجعل أول حرف في السلسلة كبيراً.

  • title() تجعل أول حرف من كل كلمة كبيراً.

python
s = "hello world" print(s.capitalize()) # Hello world print(s.title()) # Hello World

3. strip() و lstrip() و rstrip()

تستخدم لإزالة الفراغات من بداية أو نهاية السلسلة:

python
s = " hello " print(s.strip()) # "hello" print(s.lstrip()) # "hello " print(s.rstrip()) # " hello"

4. replace()

تُستخدم لاستبدال جزء من السلسلة بجزء آخر:

python
s = "I love Java" print(s.replace("Java", "Python")) # I love Python

5. split() و join()

  • split() تقسّم السلسلة إلى قائمة.

  • join() توصل عناصر القائمة إلى سلسلة نصية.

python
text = "Python is fun" parts = text.split() print(parts) # ['Python', 'is', 'fun'] joined = "-".join(parts) print(joined) # Python-is-fun

6. find() و index()

  • find() ترجع أول موقع لوجود جزء معين أو -1 إذا لم يوجد.

  • index() مشابهة ولكنها تُطلق استثناء إذا لم يتم العثور على القيمة.

python
s = "Python programming" print(s.find("pro")) # 7 print(s.index("Py")) # 0

7. startswith() و endswith()

تتحقق مما إذا كانت السلسلة تبدأ أو تنتهي بجزء معين:

python
s = "hello world" print(s.startswith("hello")) # True print(s.endswith("world")) # True

8. isdigit() و isalpha() و isalnum()

تتحقق مما إذا كانت السلسلة تتكون من أرقام أو أحرف أو كلاهما:

python
print("123".isdigit()) # True print("abc".isalpha()) # True print("abc123".isalnum()) # True

9. count()

تحصي عدد مرات ظهور جزء معين في السلسلة:

python
s = "banana" print(s.count("a")) # 3

تنسيق النصوص (String Formatting)

يعد تنسيق النصوص أحد الجوانب المهمة في التعامل مع السلاسل النصية، حيث يسمح بإدراج القيم داخل النصوص.

باستخدام المعامل %

python
name = "Ali" age = 25 print("My name is %s and I am %d years old." % (name, age))

باستخدام format()

python
name = "Ali" print("My name is {}".format(name))

باستخدام f-strings (من بايثون 3.6 وما بعده)

python
name = "Ali" age = 25 print(f"My name is {name} and I am {age} years old.")

العمليات على السلاسل النصية

يمكن إجراء العديد من العمليات على السلاسل النصية مباشرةً، منها:

العملية الوصف
+ دمج سلسلتين نصيتين
* تكرار سلسلة نصية
in التحقق من وجود سلسلة فرعية
not in التحقق من عدم وجود سلسلة فرعية

مثال:

python
s = "Python" print(s + "3") # Python3 print(s * 2) # PythonPython print("Py" in s) # True

التعامل مع الحروف الخاصة

بعض الحروف في بايثون لها معانٍ خاصة، ويمكن إدراجها باستخدام الحرف العكسي \:

الرمز المعنى
\n سطر جديد
\t مسافة أفقية (Tab)
\\ علامة عكسية
\' علامة اقتباس مفردة
\" علامة اقتباس مزدوجة

مثال:

python
print("Hello\nWorld") print("She said: \"Hello\"")

تحويل السلاسل النصية إلى أنواع بيانات أخرى

في بعض الأحيان نحتاج إلى تحويل السلاسل النصية إلى أعداد:

python
s = "123" num = int(s) # تحويل إلى عدد صحيح f = float(s) # تحويل إلى عدد عشري

ينبغي الحذر أثناء هذا التحويل، إذ إن السلسلة النصية يجب أن تحتوي فقط على أرقام وإلا فسيتم إطلاق استثناء.

التحقق من محتوى السلسلة

يمكن استخدام مجموعة من الدوال لفحص محتوى السلسلة النصية:

الدالة الوصف
isspace() تتحقق ما إذا كانت السلسلة تحتوي فقط على فراغات
islower() تتحقق من كون كل الأحرف صغيرة
isupper() تتحقق من كون كل الأحرف كبيرة
python
s = " " print(s.isspace()) # True

دعم اللغات المتعددة

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

python
arabic_text = "مرحبا بالعالم" print(arabic_text[::-1]) # يعكس السلسلة

أهمية التعامل مع السلاسل النصية في علوم البيانات والويب

تمثل النصوص أحد المصادر الرئيسة للمعلومات في عصر البيانات، لذلك فإن التعامل مع السلاسل النصية بفعالية يُعد مهارة أساسية. يُستخدم هذا النوع من البيانات في:

  • تحليل المشاعر (Sentiment Analysis)

  • استخراج المعلومات (Information Extraction)

  • تنظيف البيانات (Data Cleaning)

  • توليد النصوص (Text Generation)

  • بناء محركات بحث وتحليلات البيانات الاجتماعية

خلاصة الدوال الأساسية في جدول

الدالة/الأسلوب الاستخدام
len(s) حساب عدد الأحرف في السلسلة
s.lower() تحويل إلى حروف صغيرة
s.upper() تحويل إلى حروف كبيرة
s.strip() إزالة الفراغات
s.replace(a,b) استبدال
s.split() تقسيم إلى قائمة
' '.join(list) ربط القائمة
s.find(substr) إيجاد الموقع
s.count(char) حساب التكرار
s.isdigit() تحقق من وجود أرقام فقط
s.isalpha() تحقق من وجود أحرف فقط
s.startswith(x) يتحقق من بداية السلسلة
s.endswith(x) يتحقق من نهاية السلسلة

المصادر

  1. Python Official Documentation: https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str

  2. Real Python Guide to String Methods: https://realpython.com/python-strings/