مقدمة عن البيانات النصية في بايثون
ما هي النصوص في بايثون
النصوص (Strings) في بايثون هي تسلسلات مرتبة من الأحرف. وهي أحد أنواع البيانات الأساسية للتعامل مع المعلومات النصية. تُكتب النصوص بين علامتي اقتباس مفردة ('نص') أو مزدوجة ("نص") أو ثلاثية للنصوص متعددة الأسطر ('''نص متعدد الأسطر''' أو """نص""").
خصائص النصوص في بايثون
الطبيعة الكائنية للنصوص
النصوص في بايثون هي كائنات من الفئة str. وهذا يعني أن كل نص لديه إمكانية الوصول إلى العديد من الطرق المدمجة لمعالجة النص والتلاعب به.
العمليات المدعومة
توفر بايثون مجموعة واسعة من العمليات للتعامل مع النصوص:
- الفهرسة للوصول إلى الأحرف الفردية
- التقطيع لاستخراج النصوص الفرعية
- الدمج لربط النصوص
- تكرار النصوص
- البحث والاستبدال في النصوص
ثبات النصوص (Immutability)
النصوص في بايثون هي كائنات غير قابلة للتغيير. عند أي تعديل على النص، يتم إنشاء كائن جديد بينما يبقى النص الأصلي كما هو. هذه الخاصية مهمة لفهمها عند العمل مع كميات كبيرة من البيانات النصية أو في الحلقات التكرارية حيث تكون الأداء مهمًا.
العمليات الأساسية على النصوص
دمج النصوص (Concatenation)
يتم دمج النصوص في بايثون باستخدام عامل التشغيل "+":
a = "مرحبا"
b = "بالعالم"
result = a + " " + b # "مرحبا بالعالم"
تكرار النصوص
عامل التشغيل "*" يتيح تكرار النص لعدد محدد من المرات:
s = "Python"
print(s * 3) # PythonPythonPython
الفهرسة والتقطيع
تدعم بايثون الوصول إلى أحرف النص عبر الفهرس واستخراج النصوص الفرعية عبر التقطيع:
text = "Python"
print(text[0]) # P (الحرف الأول)
print(text[-1]) # n (الحرف الأخير)
print(text[1:4]) # yth (الأحرف من 1 إلى 3)
طرق التقسيم والدمج
طريقة split()
الوصف والتركيب الأساسي
طريقة split() هي واحدة من أكثر الطرق استخدامًا للتعامل مع النصوص. تقوم بتقسيم النص إلى قائمة من النصوص الفرعية بناءً على فاصل محدد.
text = "تفاحة,موز,برتقال"
print(text.split(",")) # ['تفاحة', 'موز', 'برتقال']
التقسيم حسب المسافات
عند استدعاء split() بدون وسائط، يتم تقسيم النص تلقائيًا بناءً على أي مسافات بيضاء:
"مرحبا بالعالم".split() # ['مرحبا', 'بالعالم']
التقسيم حسب حرف محدد
يمكن تحديد أي حرف كفاصل:
"واحد-اثنان-ثلاثة".split("-") # ['واحد', 'اثنان', 'ثلاثة']
المعامل maxsplit
المعامل maxsplit يحدد عدد التقسيمات:
"1,2,3,4".split(",", 2) # ['1', '2', '3,4']
طريقة join()
دمج قائمة النصوص
طريقة join() تقوم بالعملية العكسية لـ split() - فهي تدمج عناصر القائمة في نص واحد:
words = ['Python', 'is', 'awesome']
result = " ".join(words)
print(result) # Python is awesome
العمل مع فواصل مختلفة
تسمح join() باستخدام أي نص كفاصل:
print("-".join(["2025", "03", "27"])) # 2025-03-27
print("::".join(["server", "database", "table"])) # server::database::table
الاستخدام مع دالة map()
لدمج الأرقام، يجب أولاً تحويلها إلى نصوص:
numbers = [1, 2, 3]
result = " ".join(map(str, numbers)) # "1 2 3"