☰ Year plan · Communication Technology (Arabic)

السلاسل النصية في بايثون

Week 6 · Unit 1, Lesson 3 Strings and Lists in Python (1) · 3 lessons
3

المرور على الحروف والبحث وتحويل الحالة

ICT Prep 3 Term 1, Unit 1, Lesson 3: pp. 32–34
الهدفأمرّ على حروف السلسلة بحلقة، وأختبر الوجود بـ ⁦in⁩، وأستخدم ⁦upper⁩.
كلمات جديدة
حلقة ⁦for⁩ على سلسلة · تمر على الحروف واحدًا بعد واحدالعامل ⁦in⁩ · يختبر هل جزء من النص موجود داخل السلسلة؛ ويعطي ⁦True⁩ أو ⁦False⁩الدالة ⁦upper()⁩ · تعطي سلسلة جديدة بحروف كبيرة⁦True⁩ و⁦False⁩ · القيمتان الممكنتان لأي اختبار
الشرح

تستطيع الحلقة أن تمر على حروف السلسلة واحدًا واحدًا: ⁦for letter in "sun"⁩ تعمل ثلاث مرات وتكون ⁦letter⁩ هي ⁦s⁩ ثم ⁦u⁩ ثم ⁦n⁩. وتختبر الكلمة ⁦in⁩ هل جزء من النص موجود داخل سلسلة: ⁦"h" in "school"⁩ تساوي ⁦True⁩ و⁦"z" in "school"⁩ تساوي ⁦False⁩. وتعطي الدالة ⁦upper()⁩ الحروف الكبيرة: ⁦"school".upper()⁩ تساوي ⁦SCHOOL⁩. لاحظ أن ⁦upper()⁩ لا تغيّر ⁦text⁩ نفسها. فالسلسلة لا يمكن تغييرها بعد صنعها. وإذا كتبت ⁦text[0] = "S"⁩ توقفت بايثون بخطأ ⁦TypeError⁩. وللحصول على نسخة معدّلة نصنع سلسلة جديدة ونخزنها مثل ⁦text = text.upper()⁩.

Python
1for letter in "sun":
2    print(letter)
Output
s
u
n
أمثلة محلولة
Python
1text = "school"
2print("h" in text)
3print("z" in text)
4print(text.upper())
5print(text)
Output
True
False
SCHOOL
school
ثلاثة اختبارات بـ ⁦in⁩ و⁦upper⁩. يبقى النص الأصلي كما كان لأن ⁦upper()⁩ تصنع سلسلة جديدة.
Python
1text = "school"
2text[0] = "S"
Output
TypeError: a string cannot be changed
لا يُسمح بتغيير حرف واحد في السلسلة. تتوقف بايثون بخطأ ⁦TypeError⁩، ولذلك نبني سلسلة جديدة بدلًا من ذلك.
نشاط الفصل

خطط على الورق لبرنامج يعدّ كم مرة يظهر الحرف ⁦o⁩ في كلمة ⁦school⁩: مرّ على الحروف وقارن كل حرف بـ ⁦o⁩ وأضف ⁦1⁩ إلى عداد. بأي رقم ينتهي عدادك؟

تدرّب
1
ماذا تعرض الحلقة في الصورة؟
Python
1for letter in "sun":
2    print(letter)
2
كم قيمة ⁦"a" in "planet"⁩؟
3
بعد ⁦text = "cat"⁩ ثم ⁦text.upper()⁩ ما قيمة ⁦text⁩؟
4
لماذا يفشل ⁦text[0] = "S"⁩؟