تخطَّ إلى المحتوى
أكاديمية بدر التعليمية
English
أكاديمية بدر التعليمية

تصفح حسب المجال

البرمجة

المتغيرات وأنواع البيانات في بايثون: شرح عملي بالأمثلة

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

  • 6 دقائق قراءة
المتغيرات وأنواع البيانات في بايثون: شرح عملي بالأمثلة

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

ماذا ستتعلم في هذا المقال؟

  • ما المتغير، وكيف تنشئه، وقواعد تسميته.
  • أنواع البيانات الأساسية: الأعداد الصحيحة والعشرية والنصوص والقيم المنطقية.
  • المجموعات: القوائم والقواميس والصفوف والمجموعات.
  • تحويل الأنواع، وأخطاء المبتدئين، وتمارين للتطبيق.

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

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

student_name = "مريم"
age = 14
average = 91.5

هنا أنشأنا ثلاثة متغيرات. علامة = في البرمجة لا تعني «يساوي» كما في الرياضيات، بل تعني «احفظ القيمة التي على اليمين في المتغير الذي على اليسار». لهذا يمكنك أن تكتب age = age + 1، وهي جملة لا معنى لها رياضيًا، لكنها في البرمجة تعني: خذ القيمة الحالية، وأضف إليها واحدًا، واحفظ النتيجة في المتغير نفسه.

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

  • يبدأ الاسم بحرف أو بشرطة سفلية، ولا يبدأ برقم.
  • لا يحتوي على مسافات؛ استخدم الشرطة السفلية بدلًا منها، مثل total_score.
  • بايثون تفرق بين الحروف الكبيرة والصغيرة، فالمتغير Age غير المتغير age.
  • لا تستخدم الكلمات المحجوزة في اللغة، مثل if وfor وclass.
  • اختر أسماء واضحة تشرح المحتوى. price أفضل من p، وstudent_count أفضل من x.

أنواع البيانات الأساسية

كل قيمة في بايثون لها نوع يحدد ما يمكنك أن تفعله بها. لا تحتاج إلى كتابة النوع بنفسك، فبايثون تستنتجه من القيمة، ويمكنك معرفته بالدالة type().

النوع الاسم في بايثون مثال يُستخدم في
عدد صحيح int 25، ‎-3، 0 الأعمار، والأعداد، والعدّ
عدد عشري float 3.14، 91.5 الأسعار، والمتوسطات، والقياسات
نص str “أحمد”، ‘Python’ الأسماء، والرسائل، والعناوين
قيمة منطقية bool True، False الإجابة بنعم أو لا: هل نجح الطالب؟
لا قيمة NoneType None تمثيل غياب القيمة

الأعداد والعمليات الحسابية

تدعم بايثون العمليات المعتادة: الجمع +، والطرح -، والضرب *، والقسمة /. وهناك ثلاث عمليات مفيدة يجهلها كثير من المبتدئين: القسمة الصحيحة // التي تعطي الناتج دون الكسر، وباقي القسمة %، والأس **. مثلًا 17 // 5 تعطي 3، و17 % 5 تعطي 2، و2 ** 10 تعطي 1024. لاحظ أن القسمة العادية / تعطي دائمًا عددًا عشريًا، حتى لو كانت القسمة بدون باقٍ.

النصوص

النص سلسلة من الحروف بين علامتي تنصيص مفردتين أو مزدوجتين. يمكنك دمج النصوص بعلامة الجمع، وتكرارها بعلامة الضرب، ومعرفة طولها بالدالة len(). والطريقة الأحدث والأوضح لدمج المتغيرات داخل النص هي «النصوص المنسقة» (f-strings):

name = "مريم"
score = 91.5
print(f"حصلت {name} على {score} درجة")

القيم المنطقية

القيمة المنطقية إما True أو False، وتنتج غالبًا من المقارنات مثل score >= 50. هذه القيم هي أساس اتخاذ القرارات في البرنامج باستخدام الشرط if.

المجموعات: عندما تحتاج إلى أكثر من قيمة

ماذا لو أردت حفظ درجات ثلاثين طالبًا؟ لن تنشئ ثلاثين متغيرًا. بايثون توفر أنواعًا تجمع عدة قيم:

  • القائمة (list): مجموعة مرتبة قابلة للتعديل، مثل scores = [90, 75, 88]. تضيف إليها بالدالة append، وتصل إلى أول عنصر بالمؤشر صفر: scores[0].
  • القاموس (dict): أزواج من مفتاح وقيمة، مثل student = {"name": "مريم", "age": 14}. تصل إلى القيمة بالمفتاح: student["name"].
  • الصف (tuple): مثل القائمة لكنه لا يُعدل بعد إنشائه، مناسب لقيم ثابتة مثل الإحداثيات.
  • المجموعة (set): قيم بلا تكرار وبلا ترتيب، مفيدة لإزالة التكرار بسرعة.
1قيمة واحدة؟عدد أو نص أو قيمةمنطقية2قائمة عناصر؟استخدم list إذا كانالترتيب مهمًا3بيانات بأسماء؟استخدم dict عندماتصل للقيمة باسمها4قيم ثابتة؟استخدم tupleللبيانات التي لاتتغير5بلا تكرار؟استخدم set لإزالةالتكرار1قيمة واحدة؟عدد أو نص أو قيمة منطقية2قائمة عناصر؟استخدم list إذا كان الترتيب مهمًا3بيانات بأسماء؟استخدم dict عندما تصل للقيمة باسمها4قيم ثابتة؟استخدم tuple للبيانات التي لا تتغير5بلا تكرار؟استخدم set لإزالة التكرار
كيف تختار نوع البيانات المناسب لمعلومتك

مثال يوضح الاختيار: إذا أردت حفظ درجات مريم في خمس مواد بترتيب الاختبارات، فالقائمة مناسبة. أما إذا أردت أن تعرف درجة مادة بعينها باسمها، مثل الرياضيات أو العلوم، فالقاموس أفضل، لأنك تكتب scores["math"] بدل أن تتذكر أن الرياضيات هي العنصر الثالث. اختيار النوع المناسب يجعل الكود أقصر وأوضح وأقل عرضة للأخطاء.

ماذا يحدث في الذاكرة؟ الأسماء والقيم

تشبيه الصندوق مفيد في البداية، لكن الحقيقة في بايثون أدق قليلًا: المتغير اسم يشير إلى قيمة موجودة في الذاكرة، أشبه بملصق يُلصق على شيء، لا صندوق يحتويه. يظهر الفرق عندما تكتب b = a وكانت a قائمة: لن تُنسخ القائمة، بل سيصبح لديك اسمان يشيران إلى القائمة نفسها. فإذا أضفت عنصرًا عبر b ستجده أيضًا عند طباعة a. هذا السلوك يحير المبتدئين كثيرًا، ويرتبط بفكرة مهمة: بعض الأنواع قابلة للتعديل مثل القوائم والقواميس والمجموعات، وبعضها غير قابل للتعديل مثل الأعداد والنصوص والصفوف. عندما «تغير» نصًا، فإن بايثون تنشئ نصًا جديدًا في الحقيقة. وإذا أردت نسخة مستقلة من قائمة، فاستخدم b = a.copy().

تحويل الأنواع

من أشهر المواقف: تطلب من المستخدم إدخال عمره بالدالة input()، ثم تحاول إضافة واحد إليه فيظهر خطأ. السبب أن input() تعيد دائمًا نصًا، حتى لو كتب المستخدم رقمًا. الحل هو التحويل:

age = int(input("كم عمرك؟ "))
print("عمرك العام القادم:", age + 1)

الدوال int() وfloat() وstr() تحول بين الأنواع. لكن انتبه: محاولة تحويل نص مثل «خمسة» إلى عدد ستسبب خطأ، لأن بايثون لا تفهم الأرقام المكتوبة بالحروف. في البرامج الحقيقية نتعامل مع هذا الاحتمال حتى لا يتوقف البرنامج عند إدخال خاطئ.

إذا أردت مشاهدة شرح مفصل لهذه الأساسيات وغيرها، فالدورة الشاملة من قناة freeCodeCamp.org تغطيها بالتفصيل، باللغة الإنجليزية:

فيديو: «Learn Python – Full Course for Beginners [Tutorial]» – قناة freeCodeCamp.org على يوتيوب (بالإنجليزية).

أخطاء شائعة يقع فيها المبتدئون

  • جمع نص مع عدد: "العمر: " + 14 يسبب خطأ. استخدم str(14) أو النصوص المنسقة.
  • نسيان علامات التنصيص: كتابة name = مريم تجعل بايثون تبحث عن متغير اسمه مريم.
  • الخلط بين = و ==: الأولى للحفظ، والثانية للمقارنة.
  • نسيان أن الفهرسة تبدأ من صفر: العنصر الأول في القائمة هو [0] لا [1].
  • تسمية متغير باسم دالة موجودة: مثل list أو print، فتفقد الدالة الأصلية.

تمارين للتطبيق

  1. اكتب برنامجًا يطلب اسم المستخدم وسنة ميلاده، ثم يطبع عمره التقريبي في رسالة مرحبة.
  2. أنشئ قائمة بخمس درجات، واحسب مجموعها ومتوسطها باستخدام sum() وlen().
  3. أنشئ قاموسًا لكتاب يحتوي على العنوان والمؤلف وعدد الصفحات، واطبع جملة تصفه.
  4. اكتب برنامجًا يحول درجة الحرارة من مئوية إلى فهرنهايت باستخدام المعادلة: ف = م × 9 ÷ 5 + 32.

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

الخلاصة

المتغير اسم يشير إلى قيمة، ولكل قيمة نوع يحدد ما يمكنك فعله بها. تعرف على الأنواع الأساسية والمجموعات، وتذكر أن input() تعيد نصًا دائمًا، وأن الفهرسة تبدأ من صفر. جرّب كل مثال بنفسك، وغيّر فيه، فالتجربة أسرع طريق للفهم.

© 2026 أكاديمية بدر التعليمية – هذا المحتوى حصري لأكاديمية بدر التعليمية. يُسمح بالاقتباس القصير مع ذكر المصدر ورابط الصفحة.

شارك المقالة

التعليقات (0)

يمكنك التعليق بدون حساب، ويظهر تعليقك بعد مراجعة الإدارة، وقد تُعدّل الصياغة قبل النشر.

أضف تعليقًا

بريدك لن يُنشر. الحقول المطلوبة عليها علامة *

لا توجد تعليقات بعد – كن أول من يشارك.