مقدمة إلى دوال التعامل مع السلاسل النصية في بايثون 3
تشكل السلاسل النصية (Strings) أحد أهم أنواع البيانات الأساسية في لغة بايثون، وتستخدم بشكل واسع في جميع أنواع البرمجة من معالجة البيانات البسيطة إلى البرمجة النصية المعقدة وتطوير الواجهات وتطبيقات الويب. تتميز بايثون 3 بتوفير مجموعة قوية من الأدوات والدوال المدمجة التي تتيح للمطور التعامل مع النصوص بكفاءة ودقة عالية. إن فهم كيفية استخدام هذه الدوال يمثل حجر الأساس لأي مبرمج يسعى إلى كتابة شيفرات نظيفة وفعالة لمعالجة البيانات النصية.
تعريف السلاسل النصية في بايثون
السلسلة النصية في بايثون هي تسلسل من الأحرف (characters) المحاطة بعلامات اقتباس مفردة ' أو مزدوجة ". ويمكن تمثيلها أيضاً باستخدام ثلاث علامات اقتباس لإنشاء سلسلة متعددة الأسطر:
pythons1 = 'مرحبا'
s2 = "أهلاً بك"
s3 = '''هذا نص
يمتد على عدة أسطر'''
كل سلسلة نصية في بايثون هي كائن (object) من نوع str، مما يعني أنها تحتوي على العديد من الأساليب (methods) والدوال (functions) التي يمكن استخدامها مباشرة.
خصائص السلاسل النصية
من المهم إدراك بعض الخصائص الجوهرية للسلاسل النصية:
-
غير قابلة للتغيير (Immutable): لا يمكن تعديل سلسلة نصية بعد إنشائها.
-
تدعم التكرار والتقطيع (Indexing and Slicing): يمكن الوصول إلى أي حرف داخل السلسلة باستخدام الفهارس.
-
تدعم الحلقات الشرطية والتكرارية.
التقطيع والفهرسة في السلاسل النصية
يبدأ فهرس السلسلة النصية من الصفر. إذا كانت لدينا سلسلة نصية s = "Python"، فإن s[0] ستعيد الحرف 'P'.
التقطيع (Slicing):
pythontext = "Python Programming"
print(text[0:6]) # Python
print(text[7:]) # Programming
print(text[-1]) # g
الدوال المدمجة في بايثون لمعالجة السلاسل النصية
توفر بايثون مجموعة واسعة من الدوال المدمجة المخصصة للسلاسل النصية، منها ما يلي:
1. len()
تُستخدم للحصول على عدد الأحرف في السلسلة النصية:
pythontext = "Python"
print(len(text)) # 6
2. str()
تحوّل القيم الرقمية أو غيرها إلى سلسلة نصية:
pythonnum = 123
print(str(num)) # "123"
3. type()
تُستخدم لمعرفة نوع الكائن:
pythontext = "مرحبا"
print(type(text)) #
دوال وأساليب السلاسل النصية (String Methods)
1. lower() و upper()
تحويل السلسلة إلى حروف صغيرة أو كبيرة:
pythontext = "Python"
print(text.lower()) # python
print(text.upper()) # PYTHON
2. capitalize() و title()
-
capitalize()تجعل أول حرف في السلسلة كبيراً. -
title()تجعل أول حرف من كل كلمة كبيراً.
pythons = "hello world"
print(s.capitalize()) # Hello world
print(s.title()) # Hello World
3. strip() و lstrip() و rstrip()
تستخدم لإزالة الفراغات من بداية أو نهاية السلسلة:
pythons = " hello "
print(s.strip()) # "hello"
print(s.lstrip()) # "hello "
print(s.rstrip()) # " hello"
4. replace()
تُستخدم لاستبدال جزء من السلسلة بجزء آخر:
pythons = "I love Java"
print(s.replace("Java", "Python")) # I love Python
5. split() و join()
-
split()تقسّم السلسلة إلى قائمة. -
join()توصل عناصر القائمة إلى سلسلة نصية.
pythontext = "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()مشابهة ولكنها تُطلق استثناء إذا لم يتم العثور على القيمة.
pythons = "Python programming"
print(s.find("pro")) # 7
print(s.index("Py")) # 0
7. startswith() و endswith()
تتحقق مما إذا كانت السلسلة تبدأ أو تنتهي بجزء معين:
pythons = "hello world"
print(s.startswith("hello")) # True
print(s.endswith("world")) # True
8. isdigit() و isalpha() و isalnum()
تتحقق مما إذا كانت السلسلة تتكون من أرقام أو أحرف أو كلاهما:
pythonprint("123".isdigit()) # True
print("abc".isalpha()) # True
print("abc123".isalnum()) # True
9. count()
تحصي عدد مرات ظهور جزء معين في السلسلة:
pythons = "banana"
print(s.count("a")) # 3
تنسيق النصوص (String Formatting)
يعد تنسيق النصوص أحد الجوانب المهمة في التعامل مع السلاسل النصية، حيث يسمح بإدراج القيم داخل النصوص.
باستخدام المعامل %
pythonname = "Ali"
age = 25
print("My name is %s and I am %d years old." % (name, age))
باستخدام format()
pythonname = "Ali"
print("My name is {}".format(name))
باستخدام f-strings (من بايثون 3.6 وما بعده)
pythonname = "Ali"
age = 25
print(f"My name is {name} and I am {age} years old.")
العمليات على السلاسل النصية
يمكن إجراء العديد من العمليات على السلاسل النصية مباشرةً، منها:
| العملية | الوصف |
|---|---|
+ |
دمج سلسلتين نصيتين |
* |
تكرار سلسلة نصية |
in |
التحقق من وجود سلسلة فرعية |
not in |
التحقق من عدم وجود سلسلة فرعية |
مثال:
pythons = "Python"
print(s + "3") # Python3
print(s * 2) # PythonPython
print("Py" in s) # True
التعامل مع الحروف الخاصة
بعض الحروف في بايثون لها معانٍ خاصة، ويمكن إدراجها باستخدام الحرف العكسي \:
| الرمز | المعنى |
|---|---|
\n |
سطر جديد |
\t |
مسافة أفقية (Tab) |
\\ |
علامة عكسية |
\' |
علامة اقتباس مفردة |
\" |
علامة اقتباس مزدوجة |
مثال:
pythonprint("Hello\nWorld")
print("She said: \"Hello\"")
تحويل السلاسل النصية إلى أنواع بيانات أخرى
في بعض الأحيان نحتاج إلى تحويل السلاسل النصية إلى أعداد:
pythons = "123"
num = int(s) # تحويل إلى عدد صحيح
f = float(s) # تحويل إلى عدد عشري
ينبغي الحذر أثناء هذا التحويل، إذ إن السلسلة النصية يجب أن تحتوي فقط على أرقام وإلا فسيتم إطلاق استثناء.
التحقق من محتوى السلسلة
يمكن استخدام مجموعة من الدوال لفحص محتوى السلسلة النصية:
| الدالة | الوصف |
|---|---|
isspace() |
تتحقق ما إذا كانت السلسلة تحتوي فقط على فراغات |
islower() |
تتحقق من كون كل الأحرف صغيرة |
isupper() |
تتحقق من كون كل الأحرف كبيرة |
pythons = " "
print(s.isspace()) # True
دعم اللغات المتعددة
تدعم بايثون 3 التعامل مع النصوص المكتوبة بلغات مختلفة مثل العربية والصينية واليابانية باستخدام Unicode. جميع السلاسل النصية في بايثون 3 هي Unicode بشكل افتراضي، مما يسهل عملية معالجة النصوص متعددة اللغات.
pythonarabic_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) |
يتحقق من نهاية السلسلة |
المصادر
-
Python Official Documentation: https://docs.python.org/3/library/stdtypes.html#text-sequence-type-str
-
Real Python Guide to String Methods: https://realpython.com/python-strings/

