التمرين الأول: إنشاء القوائم وفهم سلوكها اختر الإجابة الصحيحة بعد تحليل بنية القائمة أو تتبع التغييرات التي تطرأ عليها. أي سطر ينشئ قائمة فارغة باستخدام الصيغة المباشرة ذات الأقواس المربعة؟ شرح السؤال لكل بنية بيانات رمز يميز الصيغة المباشرة لإنشائها. ابحث عن الخيار الذي يستخدم قوسين مربعين من دون عناصر. my_list = () my_list = [] my_list = {} my_list = "" الإجابة الصحيحة: my_list = []تمثل الأقواس المربعة الفارغة [] الصيغة المباشرة لإنشاء قائمة لا تحتوي على عناصر.يمكن أيضًا إنشاء قائمة فارغة باستخدام list()، لكن السؤال يطلب تحديدًا الصيغة المباشرة ذات الأقواس المربعة. أما الأقواس الدائرية والمعقوفة وعلامات الاقتباس فتنشئ أنواعًا أخرى من القيم. ما ناتج المقطع الآتي؟fruits = ["تفاح", "موز", "برتقال", "مانجو"] print(fruits[2]) شرح السؤال يبدأ أول فهرس في القائمة من الصفر. عدّ العناصر حتى تصل إلى الفهرس المكتوب بين القوسين. موز مانجو برتقال يظهر IndexError الإجابة الصحيحة: برتقاليحمل العنصر الأول الفهرس 0 والثاني الفهرس 1، لذلك يشير fruits[2] إلى العنصر الثالث وهو برتقال. ما ناتج المقطع الآتي؟numbers = [10, 20, 30, 40, 50] print(numbers[-1]) شرح السؤال تسمح الفهارس السالبة بالعد من نهاية القائمة. حدّد العنصر الذي يشير إليه أول فهرس سالب. 10 40 يظهر خطأ لأن الفهرس سالب 50 الإجابة الصحيحة: 50يشير الفهرس -1 إلى آخر عنصر في القائمة، ولذلك تُطبع القيمة 50. ما ناتج المقطع الآتي؟my_list = [1, 2, 3] my_list[1] = 10 print(my_list) شرح السؤال الفهرس المكتوب يشير إلى العنصر الثاني لا الأول. استبدل ذلك العنصر بالقيمة الجديدة مع إبقاء بقية القائمة كما هي. [1, 10, 3] [10, 2, 3] [1, 2, 10] [1, 2, 3, 10] الإجابة الصحيحة: [1, 10, 3]القوائم قابلة للتغيير، ويشير الفهرس 1 إلى القيمة 2. يستبدل سطر الإسناد هذه القيمة بالعدد 10 من دون تغيير العنصرين الآخرين.تختلف هذه العملية عن الإضافة؛ فهي لا تزيد طول القائمة، بل تغيّر قيمة موجودة في موضع محدد.