النصوص (Strings) — أساسيات Python
النصوص (Strings)
معظم البرامج تتعامل مع النصوص: أسماء، رسائل، إدخال المستخدم. النص في Python هو تسلسل من الأحرف بين علامتي تنصيص.
name = "Python"
message = 'مرحباً'
long_text = """نص
على عدة أسطر"""الطول والفهرسة
word = "Python"
len(word) # 6
word[0] # 'P'
word[-1] # 'n'الفهرسة تبدأ من 0، والفهرس السالب يعدّ من النهاية.
التقطيع (slicing)
word[0:3] # 'Pyt' (من 0 حتى قبل 3)
word[2:] # 'thon'
word[::-1] # 'nohtyP' (عكس النص)النصوص غير قابلة للتعديل
word[0] = "J" # TypeError
word = "J" + word[1:] # الصحيح: أنشئ نصاً جديداًدوال شائعة
| الدالة | ماذا تفعل | مثال |
|---|---|---|
| upper() / lower() | تغيير حالة الأحرف | "Hi".upper() ← "HI" |
| strip() | حذف المسافات من الطرفين | " hi ".strip() ← "hi" |
| replace(a, b) | استبدال | "cat".replace("c", "b") ← "bat" |
| split(sep) | تقسيم إلى قائمة | "a,b".split(",") ← ['a', 'b'] |
| find(x) | موقع أول ظهور أو -1 | "hello".find("l") ← 2 |
| count(x) | عدد مرات الظهور | "banana".count("a") ← 3 |
| startswith(x) | هل يبدأ بـ | "file.py".endswith(".py") ← True |
الدوال ترجع نصاً جديداً ولا تغيّر الأصلي، لذلك احفظ النتيجة: name = name.strip().
الدمج والتكرار
"أهلاً " + "بك" # دمج
"-" * 10 # '----------'
"th" in "Python" # Trueتنسيق النصوص بـ f-string
أوضح طريقة لوضع قيم داخل نص: ضع f قبل التنصيص والقيم بين {}.
name, score = "منى", 93.456
print(f"الطالبة {name} حصلت على {score:.1f}") # 93.5
print(f"{5 * 3 = }") # 5 * 3 = 15:.1f تعني منزلة عشرية واحدة. يمكن وضع أي تعبير داخل القوسين.
الرموز الخاصة
\n سطر جديد، \t مسافة جدولة، و \" علامة تنصيص داخل النص.
أخطاء شائعة
- نسيان أن upper() لا تغيّر النص الأصلي.
- "العمر: " + 25 ← TypeError؛ استخدم f-string.
تمرين
اطلب من المستخدم جملة، ثم اطبع: عدد أحرفها، والجملة بأحرف كبيرة، وعدد كلماتها (استخدم split())، والجملة معكوسة.
word = "Programming"
print(len(word)) # 11
print(word[0], word[-1]) # P g
print(word[0:7]) # Program
print(word[::-1]) # gnimmargorP
# الدوال ترجع نصاً جديداً
raw = " Hello World "
clean = raw.strip()
print(clean.upper(), clean.lower())
print(clean.replace("World", "Python"))
print(clean.split()) # ['Hello', 'World']
print("banana".count("a")) # 3
print("report.pdf".endswith(".pdf"))
# الدمج والبحث
print("Py" + "thon", "=" * 10)
print("th" in "Python") # True
# f-strings
name = "منى"
score = 93.456
print(f"الطالبة {name} حصلت على {score:.1f}")
print(f"{7 * 6 = }")
# أسطر متعددة ورموز خاصة
print("السطر الأول\nالسطر الثاني")
print("اسم\tدرجة")
# تحليل جملة
sentence = "Python makes programming fun"
words = sentence.split()
print(f"عدد الكلمات: {len(words)}")
print(f"أطول كلمة: {max(words, key=len)}")
اختبر فهمك