أنواع البيانات في بايثون

أنواع البيانات في بايثون (Python Data Types)

🧠 ما هو مفهوم "نوع البيانات" بداخل الذاكرة؟

في الدرس السابق، تعلمنا أن المتغيرات هي صناديق لحفظ المعلومات. ولكن لتتمكن الحواسب من معالجة البيانات بكفاءة، يجب على مفسر لغة بايثون معرفة نوع البيانات (Data Type) المخزن بداخل كل صندوق. يحدد نوع البيانات طبيعة العمليات الحسابية والمنطقية المسموح بإجرائها على المتغير؛ فالنصوص تُعالج برمجياً بطريقة تختلف تماماً عن الأرقام أو القيم المنطقية المعقدة.

تتميز بايثون بأنها لغة ذات تحديد ديناميكي للنوع (Dynamically Typed)؛ مما يعني أنها تكتشف نوع البيانات تلقائياً بمجرد إسناد القيمة للمتغير دون تدخل يدوي منك، مما يوفر وقت المبرمج ويسهل أتمتة السكريبتات الذكية.

📊 جدول المعمارية الشامل لأنواع البيانات القياسية في بايثون

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

نوع البيانات (Data Type) المصطلح البرمجي مثال تطبيقي دقيق (Code Example) الوصف والاستخدام الهندسي في الذاكرة
سلسلة نصية str "عالم الذكاء الاصطناعي" حفظ الكلمات، الفقرات والرموز بداخل علامات اقتباس
عدد صحيح int 2026 الأرقام الحسابية الكاملة الخالية تماماً من الفواصل العشرية
عدد عشري float 99.95 القيم والأرقام الكسرية التي تتطلب دقة رياضية متناهية
قيمة منطقية bool True / False التعبير عن حالتين صريحتين فقط (نعم أو لا / صح أو خطأ)
قائمة مصفوفة list ["تفاح", "موز"] مجموعة عناصر مرتبة وقابلة للتعديل والتبديل لاحقاً
صف ثابت tuple ("أحمر", "أزرق") مجموعة عناصر مرتبة ولكنها محمية وغير قابلة للتعديل أبداً
قاموس هيكلي dict {"id": 101} تخزين البيانات المعقدة على هيئة (مفتاح وقيمة وربطها)

1. النصوص والسلاسل النصية (Strings - str)

تُستخدم لحفظ وعرض النصوص الحوارية والكلمات. ويشترط محرك بايثون لتفسيرها وضع النص بداخل علامات اقتباس فردية '' أو مزدوجة "":

name = "أحمد"
message = "مرحبا بكم في منصة airealm.info"

2. الأعداد الصحيحة (Integers - int)

تُمثل الأرقام الرياضية المصمتة الخالية من الفواصل، وتُستخدم بكثافة في بناء العدادات، التكرارات، وحساب الأعمار والسنوات:

age = 25
year = 2026

3. الأعداد العشرية العائمة (Floating Point - float)

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

price = 19.99
temperature = 36.5

4. القيم والشرطيات المنطقية (Booleans - bool)

تُمثل عصب اتخاذ القرارات في الخوارزميات (الماتريكس)؛ حيث تحمل قيمتين لا ثالث لهما إما True أو False، ويشترط كتابة الحرف الأول دائماً كبيراً (Capital):

is_active = True
is_logged_in = False

5. القوائم والمصفوفات المرنة (Lists)

تُستخدم لحجز مستودع بيانات يجمع عدة عناصر مختلفة بداخل متغير واحد، وتتميز بأنها مرنة وقابلة للتعديل (Mutable) وتُغلف بأقواس مربعة []:

fruits = ["تفاح", "موز", "برتقال"]
numbers = [1, 2, 3, 4]

6. الصفوف المحمية والثابتة (Tuples)

تشبه القوائم تماماً في جمع العناصر، ولكنها تتميز بأنها **غير قابلة للتعديل أو الحذف** بعد إنشائها بداخل الذاكرة (Immutable)، مما يحمي ثوابت البرنامج وتُغلف بأقواس دائرية ():

colors = ("أحمر", "أخضر", "أزرق")

7. القواميس الهيكلية الذكية (Dictionaries - dict)

تُعد البنية الأكثر كفاءة لتمثيل البيانات المعقدة وملفات JSON؛ حيث تعتمد على حفظ العنصر على هيئة مفتاح فريد (Key) وقيمة مقابلة له (Value) وتُغلف بأقواس مجعدة {}:

person = {
    "name": "أحمد",
    "age": 25,
    "country": "Switzerland"
}

🔍 كشف القناع عن الذاكرة: كيف تعرف نوع بيانات المتغير؟

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

💻 الكود البرمجي البروفيسور للفحص:

print(type(10))
print(type("مرحبا بك"))
print(type(True))

🖥️ المخرجات المطبوعة على الكونسول:

<class 'int'>
<class 'str'>
<class 'bool'>

الشرح: تخبرك بايثون صراحة أن العنصر الأول ينتمي لطائفة الأرقام الصحيحة int، والثاني للسلاسل النصية str، والثالث للقيم المنطقية bool.

💡 إرشادات هندسية للمطور المحترف لتفادي تضارب البيانات

  • احذر الخلط بين الأنماط: تذكر دائماً أن الرقم 10 يختلف تماماً عن النص "10" بداخل الذاكرة؛ فالأول يمكنك إجراء عمليات ضرب وجمع عليه، بينما الثاني سيتعامل معه البرنامج كأحرف نصية جافة.
  • طوع الـ Tuples لحماية الثوابت: عندما تبني تطبيقاً يحتوي على قيم ثابتة لا تتغير (مثل إحداثيات جغرافية أو أسماء أيام الأسبوع)، احفظها بداخل Tuple وليس List لحمايتها من التعديل العشوائي بالخطأ أثناء تشغيل السكريبت.

🔥 مساحة التطبيق والإنتاج الحي: قمنا بتجهيز وتهيئة كافة الأنماط السبعة المذكورة بداخل محرر ومجمع بايثون تفاعلي مباشر؛ لتقوم بتجربتها بنفسك، وفحص الأنواع عبر دالة type()، ومعاينة نتائجك الفورية: انقر هنا وافتح المحرر التفاعلي لدرس أنواع البيانات ←