☰ Year plan · Communication Technology (Arabic)

القوائم

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

السلسلة أم القائمة؟ وبرنامج فاحص صغير

ICT Prep 3 Term 1, Unit 1, Lesson 3: pp. 34–42
الهدفأقارن بين السلاسل النصية والقوائم وأقرأ برنامجين صغيرين يمرّان عليها.
كلمات جديدة
⁦list(text)⁩ · تصنع قائمة فيها عنصر لكل حرف⁦break⁩ · تخرج من الحلقة فورًا⁦isdigit()⁩ · تعطي ⁦True⁩ إذا كان الحرف رقمًاالنتيجة (⁦score⁩) · عدد يعدّ النقاط المكتسبة
الشرح

السلاسل والقوائم كلتاهما مرتبة وكلتاهما تستخدم الفهارس، لكنهما تختلفان. السلسلة تُكتب بين علامتي تنصيص وتحمل حروفًا ورموزًا فقط ولا يمكن تغييرها. والقائمة تُكتب بين قوسين مربعين وتحمل أي قيم ويمكن تغييرها. وتحوّل الدالة ⁦list()⁩ السلسلة إلى قائمة من الحروف المفردة: ⁦list("cat")⁩ تعطي ⁦['c', 'a', 't']⁩. ولا نحتاج إليها للمرور على سلسلة لأن الحلقة تستطيع المرور على السلسلة مباشرة. وفي برنامجين صغيرين نستخدم الفكرتين. الأول يطبع الأسماء التي تبدأ بحرف ⁦S⁩ باستخدام ⁦name[0]⁩. والثاني يعطي درجة قوة لسلسلة مثال: نقطة لكل من الطول ووجود رقم وحرف كبير ورمز. وبعد إيجاد أول رقم تستخدم الحلقة ⁦break⁩ فتعطي كل قاعدة نقطة واحدة على الأكثر. والمثال سلسلة مخترعة. وفي الحياة الواقعية لا تكتب كلمة مرور حقيقية في أي برنامج تدريب أو لعبة.

السلسلةالقائمة
تُكتب بـعلامتي تنصيصقوسين مربعين
تحملحروفًا ورموزًا فقطأي قيم
يمكن تغييرهالانعم
أمثلة محلولة
Python
1names = ["Mona", "Omar", "Salma", "Sami"]
2for name in names:
3    if name[0] == "S":
4        print(name)
Output
Salma
Sami
البرنامج الأول يمر على قائمة أسماء ويطبع الأسماء التي أول حرف فيها ⁦S⁩. يفشل ⁦Mona⁩ و⁦Omar⁩ في الاختبار وينجح ⁦Salma⁩ و⁦Sami⁩.
Python
1sample = "Blue7sky!"
2symbols = "@#$%&!"
3score = 0
4if len(sample) >= 8:
5    score += 1
6for ch in sample:
7    if ch.isdigit():
8        score += 1
9        break
10for ch in sample:
11    if ch.isupper():
12        score += 1
13        break
14for ch in sample:
15    if ch in symbols:
16        score += 1
17        break
18print(score)
Output
4
البرنامج الثاني يعطي درجة للمثال المخترع «⁦Blue7sky⁩!»: تسعة حروف تعطي نقطة، والرقم ⁦7⁩ نقطة، والحرف الكبير ⁦B⁩ نقطة، والرمز ⁦!⁩ نقطة. فالمجموع ⁦4⁩. وتتوقف كل حلقة عند أول تطابق.
يبين هذا المخطط ترتيب الفحوص الأربعة في البرنامج الثاني. ويمكن ملء جدول أمثلة مخترعة باتباعه: كلمة قصيرة مثل ⁦cat⁩ تأخذ ⁦0⁩ نقطة.
نشاط الفصل

استعمل الفحوص الأربعة لإعطاء درجة لهذه السلاسل المخترعة، وليس لسلسلة تخصك: ⁦Sunny2024⁩ و⁦tree!⁩ و⁦ABCDEFGH⁩. املأ جدولًا بـ ⁦1⁩ أو ⁦0⁩ لكل فحص ثم المجموع. أي سلسلة تحصل على أعلى درجة؟

تدرّب
1
ماذا تعطي ⁦list("cat")⁩؟
2
أي اسمين يطبعهما البرنامج الأول؟
Python
1names = ["Mona", "Omar", "Salma", "Sami"]
2for name in names:
3    if name[0] == "S":
4        print(name)
3
لماذا يستخدم البرنامج الثاني ⁦break⁩ بعد إيجاد أول رقم؟
4
لماذا لا نكتب كلمة مرور حقيقية في برنامج تدريب؟