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
Python
1text = "school" 2text[0] = "S"
Output
TypeError: a string cannot be changed
نشاط الفصل
خطط على الورق لبرنامج يعدّ كم مرة يظهر الحرف o في كلمة school: مرّ على الحروف وقارن كل حرف بـ o وأضف 1 إلى عداد. بأي رقم ينتهي عدادك؟
تدرّب
1
ماذا تعرض الحلقة في الصورة؟
Python
1for letter in "sun": 2 print(letter)
الحروف s وu وn كل منها في سطر.
2
كم قيمة "a" in "planet"؟
True لأن الحرف a موجود في planet.
3
بعد text = "cat" ثم text.upper() ما قيمة text؟
ما زالت cat. فـ upper() تعطي سلسلة جديدة ولا تغيّر text.
4
لماذا يفشل text[0] = "S"؟
لأن السلسلة لا يمكن تغييرها بعد صنعها (TypeError).