أنواع البيانات الأساسية في Python
| نوع البيانات الصريح | التصنيف والتركيب البرمجي | أمثلة الشيفرة وطبيعة التخزين |
|---|---|---|
| int | نوع بيانات يمثل الأرقام الكاملة الموجبة والسالبة والصفر دون أي فواصل عشرية | كود 100 وكود -5 وتخزن بكفاءة رقمية عالية |
| float | نوع بيانات يمثل الأرقام التي تحتوي على كسر أو فاصلة عائمة متحركة | كود 3.14 وكود 0.0 وتستخدم للحسابات الدقيقة |
| str | نوع بيانات يمثل النصوص والكلمات وتوضع حتماً بين علامات تنصيص مفردة أو مزدوجة | كود مرحبا وتتعامل مع الأحرف بنظام اليونيكود |
| bool | نوع بيانات ثنائي يمثل الحقيقة المنطقية ولها قيمتان فقط لا غير | كود True أو كود False وتستخدم في الشرط والتحكم |
| NoneType | نوع بيانات خاص يشير إلى غياب القيمة أو أن المتغير لا يحتوي على أي شيء حالياً | كود None وتستخدم كحاجز مكان مبدئي |
| list | هيكل بيانات تجميعي كائناتي مرتب وقابل للتعديل ويوضع بين أقواس مربعة | كود 1 و 2 و 3 وتسمح بتكرار العناصر |
| tuple | هيكل بيانات تجميعي مرتب ولكنه غير قابل للتعديل بعد الإنشاء ويوضع بين أقواس دائرية | كود 1 و 2 و 3 وتستخدم لحماية البيانات |
| set | هيكل بيانات تجميعي غير مرتب ولا يسمح بتكرار العناصر ويوضع بين أقواس مجعدة | كود 1 و 2 و 3 وتستخدم للعمليات الرياضية |
| dict | هيكل بيانات تجميعي يعتمد على نظام مفتاح وقيمة مقترنة به ويوضع بين أقواس مجعدة | كود key ومقابله value وتستخدم للوصول السريع |
| ديناميكية الأنواع | ميزة تتيح إعادة تعيين قيمة من نوع جديد تماماً لنفس المتغير دون قيود | كود تحويل x من 5 إلى نص بنجاح |
1. مفهوم أنواع البيانات في Python تمثل أنواع البيانات (Data Types) التصنيف البرمجي للقيمة المخزنة داخل المتغير. يحدد هذا التصنيف للعمليات الحسابية والمنطقية ما يمكن إجراؤه على هذه القيمة من عمليات (على سبيل المثال: يصح جمع الأرقام، ولكن لا يصح جمع نص مع رقم).
تنقسم البيانات في بايثون إلى فئتين رئيسيتين: الأنواع الأساسية المفردة، وأنواع التجميع (Collections) التي تُستخدم لتخزين عناصر متعددة في متغير واحد.
2. أنواع البيانات الأساسية (Primitive Data Types) أ) الأعداد الصحيحة (Integer - int) تمثل الأرقام الكاملة الخالية من أي فواصل عشرية، سواء كانت قيمًا موجبة، سالبة، أو صفراً. لا توجد حدود صارمة لحجم الرقم الصحيح في بايثون مقارنة بلغات أخرى؛ إذ تعتمد على حجم الذاكرة المتاحة للجهاز.
ب) الأعداد العشرية (Floating Point - float) تمثل الأرقام التي تحتوي على كسر أو علامة عشرية (Floating-point). تشمل أيضاً الأرقام المكتوبة بالصيغة العلمية (الأسية).
ج) السلاسل النصية (String - str) مجموعة متتالية من الحروف أو الرموز أو الأرقام المحاطة بعلامات تنصيص مفردة ' ' أو مزدوجة " ". السلاسل النصية في بايثون غير قابلة للتعديل (Immutable) بمجرد إنشائها في الذاكرة.
د) القيم المنطقية (Boolean - bool) نوع بيانات ثنائي يمثل الحالات المنطقية، ويأخذ إحدى قيمتين فقط: True (صحيح) أو False (خاطئ). يجب الانتباه إلى كتابة الحرف الأول كبيراً (Capitalized).
هـ) القيمة الفارغة (NoneType - None) نوع بيانات فريد يحتوي على قيمة واحدة فقط هي None. تُستخدم هذه القيمة للإشارة عمداً إلى غياب القيمة، أو أن المتغير لم يتحدد محتواه بعد بشكل فعلي.
3. أنواع التجميع الأساسية (Built-in Collections) تُستخدم هذه الهياكل لتنظيم وحفظ مجموعات من البيانات تحت معرف واحد، وتختلف في خصائصها:
القوائم (list): مصفوفات مرتبة (Ordered)، قابلة للتعديل (Mutable)، وتسمح بتكرار العناصر. تُعرف بالأقواس المربعة [ ].
الصفاف أو التوبل (tuple): مصفوفات مرتبة، ولكنها غير قابلة للتعديل (Immutable). تُعرف بالأقواس الدائرية ( ) وتستخدم لضمان سلامة البيانات ضد التغيير الفجائي.
المجموعات (set): تجميع غير مرتب (Unordered) وعناصرها فريدة تماماً ولا تقبل التكرار. تُعرف بالأقواس المجعدة { }.
القواميس (dict): هيكل بيانات يعتمد على ربط "مفتاح فريد" بـ "قيمة معينة" (Key-Value pairs). يُعرف بالأقواس المجعدة { } مع استخدام النقطتين الرأسيتين للتخصيص.
4. ديناميكية الأنواع في Python (Dynamic Typing) تتبع بايثون نظام التعيين الديناميكي (Dynamic Typing)، مما يعطي مرونة عالية أثناء كتابة الشيفرة. لا يرتبط المتغير بنوع بيانات ثابت طوال فترة عمل البرنامج، بل ترتبط القيمة نفسها بالنوع. نتيجة لذلك، يمكن إعادة إسناد قيمة من نوع مختلف تماماً لنفس المتغير في أي سطر لاحق دون تسبب ذلك في أي خطأ برمي.
| 1 | # الأنواع الأساسية |
| 2 | integer_num = 42 # int |
| 3 | float_num = 3.14 # float |
| 4 | text = "مرحباً بايثون" # str |
| 5 | is_valid = True # bool |
| 6 | nothing = None # NoneType |
| 7 | |
| 8 | # معرفة النوع |
| 9 | print(type(integer_num)) # <class 'int'> |
| 10 | print(type(text)) # <class 'str'> |
مثال 1: أنواع البيانات الأساسية
| 1 | # int |
| 2 | students = 30 |
| 3 | print(type(students)) # <class 'int'> |
| 4 | |
| 5 | # float |
| 6 | temperature = 36.5 |
| 7 | print(type(temperature)) # <class 'float'> |
| 8 | |
| 9 | # str |
| 10 | city = "القاهرة" |
| 11 | print(type(city)) # <class 'str'> |
| 12 | |
| 13 | # bool |
| 14 | is_open = True |
| 15 | print(type(is_open)) # <class 'bool'> |
| 16 | |
| 17 | # None |
| 18 | result = None |
| 19 | print(type(result)) # <class 'NoneType'> |