البرمجة

فهم تأثير القوائم في لغة البرمجة Python

في البداية، يجب أن أشير إلى أن الشيفرة التي قدمتها غير صحيحة. لدينا نطاق (range) وهو كائن لا يمكن تغيير قيمه بشكل مباشر، ولكن يمكن تحويله إلى قائمة (list) ليصبح قابلًا للتعديل. لنصحح الشيفرة:

python
X = list(range(4, 7)) Y = list(range(2)) X[2] = Y print(X[2][0]) print(X[2][1]) X[2][0] = 9 print(Y[0])

الآن، لنقم بشرح ما يحدث في هذا الكود للوصول إلى النتائج المعطاة:

  1. نعرف متغير X و Y ككائنات نطاق (range)، ثم نحول X إلى قائمة ليصبح قابلاً للتعديل.
  2. نعين قيمة Y للعنصر الثالث في X.
  3. نطبع قيمة العناصر الأولى والثانية في Y، وهي 0 و 1 على التوالي.
  4. نقوم بتغيير قيمة العنصر الأول في القائمة Y إلى 9.
  5. نطبع قيمة العنصر الأول في Y مرة أخرى، والتي أصبحت الآن 9.

الناتج النهائي سيكون:

0 1 9

أما بخصوص الشيفرة الثانية:

python
X = list(range(4, 7)) print(X[-1])

فإنها ستطبع العنصر الأخير في القائمة X، وبما أن قيم X هي [4, 5, 6]، فإن الناتج سيكون:

6

فيما يتعلق بالقيم السالبة، فإنها تستخدم للوصول إلى العناصر من النهاية. -1 يشير إلى العنصر الأخير، -2 يشير إلى العنصر قبل الأخير، وهكذا.

المزيد من المعلومات

بالطبع، دعونا نوسع المعرفة حول الشيفرة ونفهم المزيد حول كيفية عملها.

في البداية، قمنا بإنشاء متغيرين، X و Y، حيث قمنا بتعيين قيمة لـ X باستخدام range(4, 7)، وهذا يعني أن قيم X ستكون [4, 5, 6]. أما Y، فهو قائمة تحتوي على الأرقام [0, 1] باستخدام range(2).

ثم، قمنا بتعيين قيمة Y إلى X[2]، أي أننا جعلنا العنصر الثالث في X يشير إلى نفس القائمة Y. لذا، الآن X سيكون [4, 5, [0, 1]].

ثم قمنا بطباعة العناصر الأولى والثانية في Y، وهي 0 و 1 على التوالي.

بعد ذلك، قمنا بتغيير قيمة العنصر الأول في القائمة الموجودة في X[2] إلى 9. وبما أن هذه القائمة تشير أيضًا إلى Y، فإن قيمة Y[0] ستتغير إلى 9.

أخيرًا، قمنا بطباعة قيمة Y[0] لنرى التأثير، وهي الآن 9.

النتيجة النهائية التي تم طباعتها هي:

0 1 9

بالنسبة للشيفرة الثانية، X = list(range(4, 7)) تعني أن X ستكون [4, 5, 6]، و print(X[-1]) يعني طباعة العنصر الأخير في القائمة، وهو 6.

أتمنى أن هذا يساعد في فهم الشيفرة والنتائج المتوقعة.

مقالات ذات صلة

زر الذهاب إلى الأعلى

هذا المحتوى محمي من النسخ لمشاركته يرجى استعمال أزرار المشاركة السريعة أو تسخ الرابط !!