طباعة مع تحقق من الحل

المتغيرات وعلامة الإسناد

الدرس 6
عربي

المتغيرات وعلامة الإسناد

المتغير في البرمجة يشبه صندوقًا نخزن فيه البيانات ليُعاد استخدامها لاحقًا. يمكن أن يحتفظ الصندوق بنصوص أو أرقام (أو أنواع بيانات أخرى سوف نشرحها في دروس أخرى) بما يناسب احتياج البرنامج.

ويجب عند اختيار اسم متغير أن يكون اسمًا واضحًا يساعدنا على الوصول للمعلومة بسرعة وفهم نوعية البيانات أو القيمة المخزنة في المتغير. المفتاح الذي يربط الاسم بالمحتوى هو علامة الإسناد = التي تعني "ضع القيمة داخل هذا الصندوق".

ما هو المتغير عمليًا؟

  • الاسم على يمين = يحدد اسم المتغير. أو اختصارًا يسمى المتغير.
  • على يسار = تُخزَّن القيمة التي داخل المتغير، وتسمى اختصارًا القيمة.
  • يمكن أن تكون القيمة رقمًا أو نصًا (لاحقًا نتكلم عن أنواع البيانات الأخرى).
  • بالشكل والترتيب التالي المتغير = القيمة

شروط أسماء المتغيرات في بايثون

  • يجب أن يبدأ اسم المتغير بحرف أو بشرطة سفلية _.
  • يمكن أن يحتوي اسم المتغير على حروف وأرقام وشرطة سفلية فقط.
  • لا يُسمح بالمسافات أو الرموز الخاصة مثل @ أو # أو $ أو ? داخل الاسم.
  • حالة الأحرف الكبيرة والصغيرة مهمة فقط في الإنجليزية؛ Neme مختلف عن name، وعن NAME، وعن NamE.
  • عدم استخدام الكلمات المحجوزة في لغة بايثون (لاحقًا نتكلم عنها).
  • إذا كانت التسمية تتكوّن من أكثر من كلمة فافصلها بشرطة سفلية مثل اسم_الفرع.

فهم علامة الإسناد

عندما تكتب الرسوم = 150 فهذا يعني أنك خزنت الرقم 150 داخل المتغير المسمى الرسوم. لا تفكر في العلامة كعملية رياضية، بل كمرحلة نقل بيانات من اليسار إلى اليمين.

مثال: تعريف متغيرات بسيطة

اسم_الدرس = "أساسيات المتغيرات"
عدد_المتدربين = 25

قمنا بتعريف مجموعة من المتغيرات لكن تشغيل الكود لن يعرض شيئًا الآن، لأنه يجب استخدام دالة اطبع().

أمثلة واقعية على اختيار أسماء المتغيرات

أسماء المتغيرات يجب أن تعكس المجال الذي نعمل عليه حتى يفهم أي مبرمج لاحقًا ما الذي يمثله المتغير دون ارتباك.

أمثلة متغيرات في برنامج تعليمي

اسم_المقرر = "البرمجة للمبتدئين"
عدد_المحاضرات = 12
اجمالي_الدقائق_لكل_درس = 45
حد_التسجيل_اليومي = 120
نسبة_الانجاز_الحالي = 0.65

أمثلة متغيرات في برنامج صحي

اسم_المريض = "سارة"
موعد_المتابعة_القادم = "الإثنين"
عدد_الخطوات_اليومية_المستهدفة = 8000
متوسط_ضغط_الدم = "120/80"
خطة_الوجبات_اليومية = "منخفضة الكربوهيدرات"
عدد_الادوية_اليومية = 3

لاحظ أن كل اسم مرتبط بنوع التطبيق؛ فالأسماء الغامضة أو البعيدة عن السياق تربك الفريق لاحقًا.

طباعة قيم المتغيرات

بعد تعريف المتغير، يمكن استخدامه داخل دالة الطباعة بدلًا من إعادة كتابة القيمة يدويًا.

اسم = "صالح"

اطبع(اسم)

رصيد = 2500

اطبع("رصيدك الحالي:", رصيد)

مجرد تخزين أسماء المتغيرات لا يُظهر أي نتيجة، لذلك نحتاج دائمًا إلى استدعاء دالة اطبع() لرؤية القيم.

رسالة مخصصة للعميل

اسم = "خالد"

اطبع("عزيز العميل ", اسم , "شكرا لتعاملك معنا")

لاحظ كيف دمجنا النصوص مع المتغير للحصول على رسالة شخصية جاهزة للإرسال.

الفرق بين طباعة اسم المتغير وقيمته

اسم = "عمر"

اطبع("اسم")
اطبع(اسم)

السطر الأول يطبع الكلمة الحرفية "اسم" لأنها داخل علامات تنصيص، بينما السطر الثاني يطبع القيمة المخزنة داخل المتغير اسم وهي "عمر".

مثال من الحياة الواقعية

رقم_الطلب = 1257
اسم_الفرع = "الرياض - حي العليا"
اجمالي_المبلغ = 386.5

اطبع("عزيزي العميل", "طلبك رقم", رقم_الطلب)
اطبع("جاهز للاستلام من الفرع", اسم_الفرع)
اطبع("وإجمالي المبلغ المطلوب", اجمالي_المبلغ, "ريال")

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

تمرين: تغيير القيم

انسخ الكود التالي ثم غيّر القيم لتطابق بياناتك الخاصة:

اسم_المستخدم = "ليان"
مدينة_التسليم = "جدة"

اطبع("مرحبًا", اسم_المستخدم, "سيتم تسليم شحنتك في", مدينة_التسليم)

تمرين آخر

استخدم نفس القيم السابقة لكن اختر أسماء جديدة للصناديق، مثل العميل أو المدينة، ثم تأكد أن أوامر الطباعة ما زالت تعمل كما هي بدون أخطاء.

أمر طباعة جديد

أمامك النموذج التالي الذي يذكر وقت تسليم وجهازًا محددًا. النص خارج محرر الأكواد حتى تركز على تحليله قبل كتابة الحل:

النموذج المطلوب: "عزيزي العميل مهند، جهازك الجديد متوفر للاستلام الساعة 8 مساءً من فرع المدينة الرقمية."

عرّف متغيرات لاسم العميل، نوع الجهاز، الوقت، واسم الفرع ثم أنشئ دالة طباعة واحدة تعيد صياغة الرسالة بدقة.

اسم_العميل = "مهند"
نوع_الجهاز = "حاسوب محمول"
وقت_الاستلام = "8 مساءً"
اسم_الفرع = "المدينة الرقمية"

اطبع("عزيزي العميل", اسم_العميل + "،", "جهازك الجديد", نوع_الجهاز,
      "متوفر للاستلام الساعة", وقت_الاستلام, "من فرع", اسم_الفرع)

أسماء المتغيرات غير الواضحة تسبّب ارتباكًا

من غير المعقول أثناء بناء تطبيق تعليمي أو صحي أن نستخدم اسم متغير مثل المخالفات_المرورية، لكن لغة بايثون لن تمانع هذا الاختيار، ما قد يؤدي إلى فهم خاطئ للبيانات:

اجمالي_المخالفات_المرورية = 12

اطبع("عدد اشهر السنة", اجمالي_المخالفات_المرورية)

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

مثال سيء جدًا لكنه يعمل

ا4ب8ح2د8ت1ث0ج3خ0ك5 = 123456789

اطبع(ا4ب8ح2د8ت1ث0ج3خ0ك5)

الاسم السابق صعب القراءة وغير قابل للتذكر، لكنه ما زال يعمل لأن بايثون تسمح بحروف وأرقام بعد أن يبدأ الاسم بحرف. اختر أسماء واضحة لتجنب هذا النوع من الفوضى.

خطأ محاولة الوصول إلى اسم متغير غير موجود

اطبع(اسم)

إذا لم يتم تعريف المتغير اسم مسبقًا، فسيظهر خطأ يخبرك بأن الاسم غير معروف. لذلك عرّف المتغير دائمًا قبل استخدامه في أي جزء من الكود.