دوال النصوص الأساسية في Python
| الدالة | الوظيفة | مثال | النتيجة |
|---|---|---|---|
| len() | طول النص | len('Python') | 6 |
| upper() | أحرف كبيرة | 'hello'.upper() | HELLO |
| lower() | أحرف صغيرة | 'HELLO'.lower() | hello |
| strip() | حذف مسافات الحواف | " hi ".strip() | hi |
| split() | تقسيم النص | "a,b".split(",") | ['a', 'b'] |
| join() | دمج قائمة | ",".join(["a","b"]) | a,b |
| replace() | استبدال | "Hi".replace("H","h") | hi |
| find() | البحث عن موضع | "Python".find("y") | 1 |
| in | التحقق من وجود | "py" in "python" | True |
التعامل مع النصوص ودوالها
| العملية أو الدالة النصية | طريقة التأثير والعمل البرمجي | مثال الشيفرة والنتيجة المتوقعة لنوفيل |
|---|---|---|
| علامات الاقتباس المزدوجة والمفردة | تستخدم لتعريف النصوص القصيرة في سطر واحد دون أي اختلاف في الأداء | كود s1 يساوي "نص" و كود s2 يساوي 'نص' |
| علامات الاقتباس الثلاثية | تتيح كتابة النصوص الطويلة الممتدة على عدة أسطر برمجية مع الحفاظ على الفواصل | كود s3 يساوي ثلاث علامات اقتباس |
| دمج النصوص Concatenation | استخدام رمز الزائد لربط سلسلتين نصيتين أو أكثر معاً لتشكيل نص واحد متصل | كود Hello زائد World النتيجة Hello World |
| تكرار النصوص | استخدام رمز النجمة لمضاعفة النص بعدد المرات المحدد برقم صحيح |
التعامل مع النصوص ودوالها (Strings & String Methods)
1. مفهوم النصوص في Python وآلية تخرينها النص (String) في لغة بايثون هو عبارة عن مصفوفة متتالية من الأحرف والرموز والمسافات غير القابلة للتعديل (Immutable) بمجرد إنشائها في الذاكرة. تدعم بايثون نظام الترميز الموحد (Unicode) تلقائياً، مما يسمح لها بالتعامل مع النصوص بمختلف اللغات (مثل العربية والإنجليزية) بالإضافة إلى الرموز التعبيرية (Emojis) بكفاءة تامة.
تنقسم طرق إنشاء النصوص إلى ثلاثة أنماط أساسية:
2. العمليات الأساسية على النصوص (String Operations) أ) دمج النصوص (Concatenation) يتم ربط النصوص ببعضها باستخدام عامل الجمع (+). يشترط في بايثون أن تكون جميع الأطراف المراد دمجها من نوع نصوص (str)، ولا يمكن دمج نص مع رقم مباشرة دون تحويل الرقم إلى نص أولاً عبر دالة str().
ب) تكرار النصوص (Repetition) تتيح بايثون تكرار السلاسل النصية بمجرد ضربها في عدد صحيح (int) باستخدام عامل النجمة (*).
ج) حساب طول النص (len()) دالة len() هي دالة مدمجة (Built-in Function) تُستخدم لحساب عدد العناصر الحجمي. عند تمرير نص إليها، تُعيد القيمة الرقمية لإجمالي عدد الأحرف والمسافات وعلامات الترقيم المكونة له.
د) فهرسة النصوص (String Indexing) يتم تخزين كل حرف في السلسلة النصية في موقع رقمي محدد يُعرف بالفهرس (Index). تبدأ الفهرسة في بايثون من اليسار إلى اليمين مستهلة بالرقم 0 للحرف الأول. كما تدعم بايثون الفهرسة السالبة (Negative Indexing) لتبدأ من اليمين إلى اليسار مستهلة بالرقم 1- للحرف الأخير.
3. دوال ومعالجات النصوص (String Methods) بما أن النصوص كائنات (Objects) في بايثون، فإنها تمتلك مجموعة واسعة من الدوال الجاهزة (Methods) التي تُستدعى باستخدام نقطة الربط (.). جميع هذه الدوال لا تغير في قيمة النص الأصلي، بل تعيد نسخة جديدة معدلة منه.
أ) التحكم في حالة الأحرف (Case Conversion) upper(): تحول كافة الحروف اللاتينية إلى الصيغة الكبيرة (Uppercase).
lower(): تحول كافة الحروف اللاتينية إلى الصيغة الصغيرة (Lowercase).
ب) تنظيف وتطهير النصوص (strip()) تقوم الدالة strip() بإزالة كافة الفراغات البيضاء (Whitespace) وعلامات الجدولة (\t) ونزلات الأسطر (\n) من حافتي النص (البداية والنهاية فقط)، وتُعد أساسية لتطهير المدخلات القادمة من المستخدمين قبل تخزينها.
ج) تقسيم النصوص وتجميعها (split()) تقوم الدالة split() بتقطيع السلسلة النصية وتحويلها إلى قائمة (list) من الكلمات، بناءً على فاصل محدد يتم تمريره لها كمعامل (الافتراضي هو المسافة الفارغة).
د) الاستبدال والتعديل (replace()) تُستخدم الدالة replace(old, new) للبحث عن كلمة أو جزء معين داخل النص واستبداله كلياً بقيمة جديدة في كافة المواضع التي ظهر فيها.
هـ) البحث والتحقق (Searching & Verification) معامل التحقق منطقياً (in): يعيد قيمة منطقية (True/False) للتحقق من وجود نص فرعي داخل النص الأصلي.
الدالة find(): تبحث عن نص فرعي، وتُعيد رقم الفهرس لأول حرف من أول موضع يظهر فيه، وإذا لم تجده تُعيد
1-.الدوال startswith() و endswith(): دوال منطقية تفحص ما إذا كان النص يبدأ بـ أو ينتهي بـ مقطع محدد؛ وتُستخدم بكثرة للتحقق من امتدادات الملفات أو صياغة الروابط.
| 1 | text = "مرحباً يا Python!" |
| 2 | |
| 3 | # الطول |
| 4 | print(len(text)) # عدد الأحرف |
| 5 | |
| 6 | # الفهرسة (من 0) |
| 7 | print(text[0]) # م |
| 8 | print(text[-1]) # ! |
| 9 | |
| 10 | # التقطيع (Slicing) |
| 11 | print(text[0:4]) # مرحب |
| 12 | print(text[::-1]) # النص معكوساً |
مثال 1: دوال النصوص الأساسية
| 1 | text = " مرحباً بالعالم " |
| 2 | |
| 3 | print(text.strip()) # حذف المسافات |
| 4 | print(text.upper()) # أحرف كبيرة |
| 5 | print(text.lower()) # أحرف صغيرة |
| 6 | print(text.replace("العالم", "Python")) |
مثال 2: البحث في النصوص
| 1 | sentence = "Python لغة برمجة رائعة" |
| 2 | |
| 3 | print("Python" in sentence) # True |
| 4 | print(sentence.find("لغة")) # موضع الكلمة |
| 5 | print(sentence.startswith("Python")) # True |
| 6 | print(sentence.count("ة")) # عدد مرات التكرار |
مثال 3: f-strings والتنسيق
| 1 | name = "خالد" |
| 2 | age = 30 |
| 3 | score = 95.5 |
| 4 | |
| 5 | # f-string (الأحدث والأفضل) |
| 6 | print(f"الاسم: {name}, العمر: {age}") |
| 7 | print(f"النتيجة: {score:.1f}%") |
| 8 | print(f"الجمع: {10 + 20}") |
| 9 | |
| 10 | # format() |
| 11 | print("الاسم: {}, العمر: {}".format(name, age)) |
مثال 4: تقسيم ودمج النصوص
| 1 | # split - تقسيم |
| 2 | csv_data = "أحمد,25,مهندس" |
| 3 | parts = csv_data.split(",") |
| 4 | print(parts) # ['أحمد', '25', 'مهندس'] |
| 5 | |
| 6 | # join - دمج |
| 7 | words = ["Python", "لغة", "رائعة"] |
| 8 | sentence = " ".join(words) |
| 9 | print(sentence) # Python لغة رائعة |
| كود ha نجمة 3 النتيجة hahaha |
| حساب الطول len | دالة مدمجة تعيد إجمالي عدد الأحرف والرموز والمسافات المكونة للنص | كود len لـ Python النتيجة 6 |
| الفهرسة Indexing | الوصول لحرف معين داخل النص عبر موقعه الرقمي وتبدأ الفهرسة دائماً من الصفر | كود text المتبوع بصفر يعيد أول حرف |
| الدالتان upper و lower | تحويل حالة الأحرف الإنجليزية بالكامل إلى الكبيرة أو الصغيرة دون تعديل الأصل | كود text.upper يحول النص لأحرف كبيرة |
| الدالة strip | إزالة كافة المسافات الفارغة الزائدة والقفزات السطرية من بداية النص ونهايته فقط | كود text.strip يعيد النص نظيفاً |
| الدالة split | تقطيع النص وتحويله إلى قائمة list من العناصر بناءً على فاصل محدد كالمسافة | كود text.split يعيد قائمة بالكلمات |
| الدالة replace | استبدال جزء محدد أو كلمة معينة داخل النص بكلمة أخرى جديدة | كود text.replace يعيد النص بالتعديل الجديد |
| البحث بواسطة find و in | دالتان للتحقق من وجود كلمة؛ حيث تعيد الأولى موقع الحرف وتعود الثانية بقيمة منطقية | كود word in text يعيد True |
| التحقق startswith و endswith | دالتان منطقيتان تفحصان ما إذا كان النص يبدأ أو ينتهي بكلمة أو حرف معين | كود text.startswith يعيد True أو False |