السلسلة أم القائمة؟ وبرنامج فاحص صغير
السلاسل والقوائم كلتاهما مرتبة وكلتاهما تستخدم الفهارس، لكنهما تختلفان. السلسلة تُكتب بين علامتي تنصيص وتحمل حروفًا ورموزًا فقط ولا يمكن تغييرها. والقائمة تُكتب بين قوسين مربعين وتحمل أي قيم ويمكن تغييرها. وتحوّل الدالة list() السلسلة إلى قائمة من الحروف المفردة: list("cat") تعطي ['c', 'a', 't']. ولا نحتاج إليها للمرور على سلسلة لأن الحلقة تستطيع المرور على السلسلة مباشرة. وفي برنامجين صغيرين نستخدم الفكرتين. الأول يطبع الأسماء التي تبدأ بحرف S باستخدام name[0]. والثاني يعطي درجة قوة لسلسلة مثال: نقطة لكل من الطول ووجود رقم وحرف كبير ورمز. وبعد إيجاد أول رقم تستخدم الحلقة break فتعطي كل قاعدة نقطة واحدة على الأكثر. والمثال سلسلة مخترعة. وفي الحياة الواقعية لا تكتب كلمة مرور حقيقية في أي برنامج تدريب أو لعبة.
| السلسلة | القائمة | |
|---|---|---|
| تُكتب بـ | علامتي تنصيص | قوسين مربعين |
| تحمل | حروفًا ورموزًا فقط | أي قيم |
| يمكن تغييرها | لا | نعم |
1names = ["Mona", "Omar", "Salma", "Sami"] 2for name in names: 3 if name[0] == "S": 4 print(name)
Salma Sami
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)
4
استعمل الفحوص الأربعة لإعطاء درجة لهذه السلاسل المخترعة، وليس لسلسلة تخصك: Sunny2024 وtree! وABCDEFGH. املأ جدولًا بـ 1 أو 0 لكل فحص ثم المجموع. أي سلسلة تحصل على أعلى درجة؟
1names = ["Mona", "Omar", "Salma", "Sami"] 2for name in names: 3 if name[0] == "S": 4 print(name)