🛡️تقنية المعلومات
مستوى 1⭐ 0
🔤

الأسبوع الرابع: صائد الحروف

السلاسل النصية Strings: الفهرسة والقطع والدوال • ⏱ نحو 35 دقيقة

السلاسل النصية Strings

مجموعة من الأحرف والأرقام والرموز بين علامات اقتباس، تُخزَّن في متغيرات ونتعامل معها كقيمة نصية. السلاسل قابلة للتكرار Iterable، وغير قابلة للتغيير Immutable: العمليات عليها تُنتج نسخة جديدة.

علامات الاقتباس

فردية ' '

var_x = 'Free Kuwait'

→ Free Kuwait

مزدوجة " "

var_x = "Free Kuwait"

→ Free Kuwait

ثلاثية ''' '''

لكتابة سلاسل نصية متعددة الأسطر، مثل نص سورة الناس في مثال الكتاب.

الفهرسة والقطع في مختبر السلاسل

لكل حرف في السلسلة رقم: من البداية يبدأ العدّ من 0، ومن النهاية يبدأ من -1. والمسافة تُعدّ حرفًا أيضًا! جرّب بنفسك:

🔬 مختبر السلاسل: الفهرسة والقطع

اكتب أي نص، ثم اضغط على حرف لترى رقميه، وجرّب القطع.

✂️ القطع: str[ start : stop : step ]

var_x[::]
>>> var_x[:4]
'Free'

جرّب: [::-1] لعكس النص، و[-4:] لآخر أربعة أحرف، و[::2] لحرف بعد حرف.

القطع Slicing: str[ start : stop : step ]

start

موقع البداية.

stop

نتوقف عند الموقع الذي **قبله** (لا يُؤخذ الحرف عند stop).

step

مقدار الخطوة واتجاهها: 1 من اليسار إلى اليمين، و-1 من اليمين إلى اليسار. إن لم تحدّدها فالاتجاه تلقائيًا من اليسار إلى اليمين بخطوة واحدة.

🧪 مثال (5) من الكتاب: تجزئة الاسم وعكس النص

شغّل الكود، ثم جرّب تغيير الأرقام داخل الأقواس المربعة.

main.py

اضغط «شغّل» لترى الناتج هنا.

🧪 مثال (6) من الكتاب: الرقم المدني

الأرقام 3 و4 هي الشهر، و5 و6 هي اليوم من تاريخ الميلاد.

main.py

اضغط «شغّل» لترى الناتج هنا.

عمليات على السلاسل

+ الجمع (الربط)

يربط سلسلتين أو أكثر في سلسلة جديدة.

'Liberation ' + 'Day: ' + '26' + ' ' + 'Feb'

→ Liberation Day: 26 Feb

* التكرار

يكرّر السلسلة أي عدد من المرات.

'#' * 10

→ ##########

len() الطول

يعطي عدد أحرف السلسلة، والمسافة حرف أيضًا.

len('Free Kuwait')

→ 11

⚠️

انتبه (مثال 8): الأعداد المُدخلة بـ input() لا تُحوَّل تلقائيًا، فتُعامَل كنصوص ويربطها + بدل جمعها. إدخال 10 ثم 12 يطبع 1012 وليس 22.

دوال السلاسل النصية

capitalize() — الحرف الأول كبير

'hello, cybersecurity!'.capitalize()

→ Hello, cybersecurity!

upper() — كل الأحرف كبيرة

'Hello, Cybersecurity!'.upper()

→ HELLO, CYBERSECURITY!

lower() — كل الأحرف صغيرة

'COMPUTER SCIENCE'.lower()

→ computer science

find() — رقم أول ظهور (أو -1)

'Free Kuwait'.find('K')
'Free Kuwait'.find('k')

→ 5 ثم -1

replace() — استبدال نص بنص

old_text.replace('device', 'computer')

→ The computer is new. I like my computer.

center() — توسيط بطول محدد

'Security'.center(30, '#')

→ ###########Security###########

count() — عدد مرات الظهور

في مثال الكتاب: كلمة «النَّاس» تظهر في سورة الناس 5 مرات.

f-string — متغيرات داخل النص بين { }

f'Name: {prophet_name} and Age: {prophet_age}'

→ Name: Muhammed and Age: 63

💡

تذكّر: السلاسل النصية لا تتغير؛ فالدالة capitalize() مثلًا تُنتج نسخة جديدة، ويبقى المتغير الأصلي كما هو.

أنهيت القراءة! حان وقت 🎮 اللعب