Kodax

النصوص (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)}")
اختبر فهمك