أساسيات الصفوف

3.5 أساسيات الصفوف

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • وصف ميزات الصف وفوائده.
  • تطوير برنامج ينشئ ويستخدم صَفًا بنجاح.
  • تحديد قابلية تغيير الصف ومناقشتها.

إنشاء الصفوف والوصول إلى عناصرها

الصَف (tuple) تسلسل من القيم المفصولة بفواصل يمكن أن يحتوي على عناصر من أنواع مختلفة. يُنشأ الصف بوضع فواصل بين القيم، وجرت العادة أن يُحاط التسلسل بأقواس. يمكن الوصول إلى كل عنصر عبر الفهرس، بدءًا من العنصر الأول عند الفهرس 0.

tuple_1 = (2, 3, 4)
print(f'tuple_1: {tuple_1}')
print(tuple_1[1])
print()
data_13 = ('Aimee Perry', 96, [94, 100, 97, 93])
print(f'data_13: {data_13}')
print(data_13[2])
  
tuple_1: (2, 3, 4)
3

data_13: ('Aimee Perry', 96, [94, 100, 97, 93])
[94, 100, 97, 93]
جدول 3.4 أمثلة على الصفوف.

مفاهيم تطبيقية

إنشاء الصفوف والوصول إلى عناصرها

1.
بالنظر إلى المثال أعلاه، أيٌّ مما يلي يصل إلى العنصر الأول في tuple_1؟
  1. tuple_1[0]
  2. tuple_1[1]
  3. tuple_1[2]
2.
أيٌّ مما يلي ينشئ صَفًا صالحًا؟
  1. tuple_2 = (42, 26, 13)
  2. tuple_3 = (42, 26, 13.5)
  3. كلاهما
3.
أيٌّ مما يلي ينشئ صَفًا بثلاثة عناصر؟
  1. my_tuple = 'a', 'b', 'c'
  2. my_tuple = ['a', 'b', 'c']
  3. my_tuple = ('a', 'b', 'c')

خصائص الصفوف

كيف تُقارن الصفوف بالقوائم؟ الصفوف مرتبة وتسمح بالتكرارات، مثل القوائم، لكنها تختلف عنها في قابلية التغيير. الكائن غير القابل للتغيير (immutable) لا يمكن تعديله بعد إنشائه. الكائن القابل للتغيير (mutable) يمكن تعديله بعد إنشائه. الصفوف غير قابلة للتغيير، بينما القوائم قابلة للتغيير.

نقطة تحقق

قابلية تغيير الصف مقابل القائمة

مفاهيم تطبيقية

استخدام الصفوف

4.
بالنظر إلى البرنامج النهائي في المثال أعلاه، ما قيمة my_tuple؟
  1. (0.693, 0.414, 3.142)
  2. (0.693, 1.414, 3.142)
  3. خطأ
5.
لماذا ينتج الكود التالي خطأً؟
tuple_1 = ('alpha', 'bravo', 'charlie')
tuple_1.append('charlie')
  1. الإلحاق غير مسموح به.
  2. التكرارات غير مسموح بها.
  3. السلاسل النصية غير مسموح بها
6.
يرغب مبرمج في إنشاء تسلسل من الثوابت لسهولة الرجوع إليها بحيث لا يمكن تغييرها في أي مكان في البرنامج. أي تسلسل سيكون الأنسب؟
  1. قائمة
  2. صَف

قابلية التغيير والأداء

الصفوف غير قابلة للتغيير ولها حجم ثابت، لذا تستخدم ذاكرة أقل. عمومًا، إنشاء الصفوف والوصول إليها أسرع، مما يُحسّن الأداء بصورة ملحوظة عند التعامل مع كميات كبيرة من البيانات.

جرّب بنفسك

إنشاء صَف من قائمة

لنفترض أن مبرمجًا يريد إنشاء صَف من قائمة لمنع التغييرات المستقبلية. دالّة tuple() تنشئ صَفًا من كائن مثل قائمة. مثال: my_tuple = tuple(my_list) ينشئ صَفًا من القائمة my_list. حدّث البرنامج أدناه لإنشاء صَف final_grades من القائمة grades.

جرّب بنفسك

إنشاء صَف باستخدام إدخال المستخدم

اكتب برنامجًا يقرأ سلسلتين نصيتين وعددين صحيحين من الإدخال وينشئ صَفًا، my_data، بالقيم الأربع.

الإدخال المعطى:

    x
    y
    15
    20

الإخراج هو:

    my_data: ('x', 'y', 15, 20)