النصوص و f-strings
Strings & f-strings
النصوص و f-strings — Strings & f-strings
النصوص (strings) من أكثر أنواع البيانات استخداماً في البرامج الحقيقية. كل ما يظهر للمستخدم — رسائل، تقارير، واجهات — هو نصوص. Python تُقدّم أدوات قوية وسهلة للتعامل معها.
طرق كتابة النصوص
علامات تنصيص مفردة أو مزدوجة:
# كلاهما صحيح — Both are valid
name1 = 'محمد'
name2 = "محمد"
متى تختار المفردة ومتى تختار المزدوجة؟ اختر ما يجعل الكود أنظف. إذا كان النص يحتوي على علامة تنصيص مفردة، استخدم المزدوجة:
message = "It's a beautiful day" # تجنب التعارض — Avoid conflict
arabic = 'مرحباً بالعالم'
النصوص المتعددة الأسطر بـ """:
# نص متعدد الأسطر — Multi-line string
description = """
هذا برنامج تعليمي
يشرح أساسيات Python
باللغة العربية
"""
# أو للتعليقات الطويلة — Or for long comments
policy = """
سياسة الاستخدام:
- لا يُسمح باستخدام البرنامج تجارياً
- يجب الاحتفاظ بحقوق الملكية
"""
f-strings — الطريقة الحديثة للتنسيق
f-strings هي أنظف طريقة لدمج المتغيرات مع النصوص في Python (منذ الإصدار 3.6). ضع f قبل علامة التنصيص ثم ضع المتغيرات بين {}:
# f-string — الطريقة المُفضّلة — Preferred method
name = "فاطمة"
age = 25
city = "جدة"
message = f"مرحباً {name}، عمرك {age} سنة وتسكن في {city}"
print(message)
# مرحباً فاطمة، عمرك 25 سنة وتسكن في جدة
يمكن وضع تعبيرات كاملة داخل {} ليس فقط متغيرات:
price = 100
vat = 0.15
print(f"السعر شامل الضريبة: {price * (1 + vat):.2f} ريال")
# السعر شامل الضريبة: 115.00 ريال
لاحظ :.2f داخل {} — هذا يعني اعرض رقمين بعد الفاصلة العشرية. تعلّم بعض تنسيقات f-string المفيدة:
| التنسيق | المعنى | مثال |
|---|---|---|
:.2f | رقمان عشريان | f"{3.14159:.2f}" → 3.14 |
:d | عدد صحيح | f"{42:d}" → 42 |
:, | فاصل الآلاف | f"{1000000:,}" → 1,000,000 |
:.0f | بدون كسر عشري | f"{3.7:.0f}" → 4 |
format() — الطريقة الكلاسيكية
قبل f-strings كنا نستخدم format(). ستُقابلها في الكود القديم:
# format() — طريقة قديمة لكن مستخدمة — Old but used
name = "خالد"
score = 95
print("الطالب {} حصل على {} درجة".format(name, score))
# أو بالترتيب — Or by index
print("الطالب {0} حصل على {1} درجة".format(name, score))
f-strings أوضح وأسرع، لذا فضّلها في الكود الجديد.
العمليات الشائعة على النصوص
Python تُقدّم مجموعة غنية من العمليات المدمجة في كل نص:
تغيير الحالة:
text = " Hello World "
print(text.upper()) # " HELLO WORLD "
print(text.lower()) # " hello world "
print(text.strip()) # "Hello World" — إزالة المسافات
print(text.strip().lower()) # يمكن تسلسل العمليات
البحث والاستبدال:
sentence = "Python سهل التعلم وPython ممتع"
print(sentence.replace("Python", "البرمجة"))
# "البرمجة سهل التعلم والبرمجة ممتع"
print("Python" in sentence) # True — هل يحتوي النص؟
print(sentence.count("Python")) # 2 — كم مرة يظهر؟
التقسيم والدمج:
# split() — قسّم النص — Split text
csv_line = "سارة,22,الرياض,مبرمجة"
parts = csv_line.split(",")
print(parts) # ['سارة', '22', 'الرياض', 'مبرمجة']
# join() — ادمج قائمة — Join a list
words = ["Python", "سهل", "التعلم"]
sentence = " ".join(words)
print(sentence) # "Python سهل التعلم"
الفهرسة والقطع — Indexing & Slicing
النصوص في Python متسلسلة — كل حرف له موضع (index) يبدأ من 0:
س ل ا م
0 1 2 3
word = "سلام"
print(word[0]) # "س" — أول حرف
print(word[3]) # "م" — رابع حرف
print(word[-1]) # "م" — آخر حرف (من اليمين)
print(word[-2]) # "ا" — ما قبل الأخير
الفهرسة السالبة تبدأ من اليمين: -1 هو الأخير، -2 ما قبله، وهكذا.
القطع (Slicing) — s[start:stop]:
text = "Python رائع"
print(text[0:6]) # "Python" — من 0 إلى 5 (6 غير مشمول)
print(text[7:]) # "رائع" — من 7 حتى النهاية
print(text[:6]) # "Python" — من البداية حتى 5
print(text[::2]) # كل حرف ثانٍ — Every other character
print(text[::-1]) # عكس النص — Reverse the string
دالة len() — طول النص
name = "عبدالرحمن"
print(len(name)) # 9 — عدد الأحرف
# مفيد للتحقق من الإدخال — Useful for validation
password = "abc123"
if len(password) < 8:
print("كلمة المرور قصيرة جداً")
النصوص غير قابلة للتغيير — Strings are Immutable
نص في Python لا يمكن تعديله بعد إنشائه. الدوال مثل upper() ترجع نصاً جديداً ولا تغير الأصلي:
name = "python"
name.upper() # لا يغير name — Doesn't change name
print(name) # "python" — لا يزال صغيراً
# الصحيح: خزّن النتيجة — Correct: store the result
name = name.upper()
print(name) # "PYTHON"
خلاصة
النصوص في Python قوية ومرنة. f-strings هي الطريقة الحديثة والمُفضّلة للتنسيق — ضع f قبل التنصيص وضع المتغيرات بين {}. تعلّم الدوال الأساسية (upper, lower, strip, split, replace, join) والفهرسة والقطع — ستحتاجها في كل مشروع. في الدرس القادم ستتعلم كيف يقرر برنامجك ماذا يفعل بناءً على الشروط والحلقات.