التمرين الأول: المتغيرات والعمليات الحسابية اختر الإجابة الصحيحة بعد تطبيق قواعد التسمية والإسناد وتتبع تنفيذ المقاطع البرمجية. أي وصف يعبّر بدقة عن المتغير في البرمجة؟ شرح السؤال تحتاج البرامج إلى الاحتفاظ بالقيم لاستخدامها وتحديثها لاحقًا. ابحث عن الوصف الذي يربط اسمًا ذا معنى بقيمة مخزنة. أمر مخصص لعرض النتائج فقط اسم يرتبط بقيمة يمكن استخدامها وتحديثها نوع بيانات مستقل مثل النص والعدد علامة تنفذ عملية حسابية الإجابة الصحيحة: اسم يرتبط بقيمة يمكن استخدامها وتحديثهايمنح المتغير قيمةً اسمًا يمكن الرجوع إليه داخل البرنامج؛ فبدل تكرار القيمة نفسها نستطيع استخدام الاسم، ثم إعادة إسناده إلى قيمة جديدة عند الحاجة. أي اسم غير صالح لمتغير في بايثون؟ شرح السؤال يمكن أن يبدأ اسم المتغير بحرف أو بشرطة سفلية، لكنه لا يبدأ برقم. افحص المحرف الأول في كل اسم قبل النظر إلى بقية الاسم. _age user_name 2nd_place score2 الإجابة الصحيحة: 2nd_placeيبدأ الاسم 2nd_place برقم، ولذلك لا يقبله مفسّر بايثون اسمًا لمتغير. يمكن أن يحتوي الاسم على أرقام بعد المحرف الأول، لكن البداية يجب أن تكون حرفًا أو شرطة سفلية.لماذا الخيارات الأخرى خاطئة؟ الأسماء _age وuser_name وscore2 تلتزم بقواعد التسمية، وإن كان اختيار أسماء واضحة بأسلوب snake_case أفضل للقراءة. ما ناتج تنفيذ المقطع الآتي؟x = 10 y = 3 z = x * y + 2 print(z) شرح السؤال استبدل أسماء المتغيرات بقيمها قبل إجراء الحساب. طبّق أولوية الضرب على الجمع ثم اعرض النتيجة النهائية. 30 36 50 32 الإجابة الصحيحة: 32بعد التعويض تصبح العبارة z = 10 * 3 + 2. تنفذ بايثون الضرب أولًا فتحصل على 30، ثم تضيف 2، فتُسند القيمة 32 إلى z.لو كُتبت العبارة z = x * (y + 2) لتغيّر ترتيب التنفيذ بسبب القوسين وأصبحت النتيجة 50. الأقواس أداة صريحة للتحكم في الأولوية، أما من دونها فتُتبع قواعد العمليات المعتادة. ما القيمة النهائية للمتغير score؟score = 100 score = score - 20 score = score + 5 شرح السؤال يستخدم كل إسناد القيمة الحالية للمتغير ثم يستبدلها بنتيجة جديدة. تتبع الأسطر بالترتيب ولا تعد إلى القيمة الأولى بعد تحديثها. 85 100 80 75 الإجابة الصحيحة: 85تبدأ قيمة score بالعدد 100. ينقص السطر الثاني منها 20 فتصبح 80، ثم يستخدم السطر الثالث هذه القيمة المحدثة ويضيف إليها 5، فتكون القيمة النهائية 85.الإسناد لا يحتفظ تلقائيًا بكل القيم السابقة تحت الاسم نفسه؛ بعد كل سطر يشير الاسم إلى القيمة الجديدة. لذلك يجب تتبع حالة المتغير بعد كل تحديث، لا جمع التغييرات انطلاقًا من قيمة منفصلة في كل مرة.