دليل تعلم بايثون فهم أنواع البيانات في بايثون 3


محمد الميداوي

تُستخدم في بايثون، كما هو الحال في جميع لغات البرمجة، أنواع البيانات لتصنيف البيانات. هذا مهم لأنّ نوع البيانات الذي تستخدمه سيحدد القيم التي يمكن تعيينها لها، وما الذي يمكن فعله بها (بما في ذلك العمليات التي يمكن تنفيذها عليها).

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

فهم أنواع البيانات.jpg

مدخل

أنواع البيانات في بايثون مشابهة إلى حد ما لأنواع البيانات التي نستخدمها في العالم الحقيقي. من أمثلة أنواع البيانات في العالم الحقيقي الأعداد، مثل: الأعداد الصحيحة الطبيعية (0، 1، 2، ...)، والأعداد الصحيحة النسبية (...، 1-، 0، 1، ...)، والأعداد غير النسبية (π).

يمكننا عادة في الرياضيات جمع أعداد من أنواع مختلفة مثل إضافة 5 إلى π:

5 + π

يمكننا إما الاحتفاظ بالمعادلة كإجابة، وستكون النتيجة عددًا غير نسبي (irrational number)، أو يمكننا تقريب (round) العدد π إلى عدد ذي منازل عشرية محددة، ثم نجمع العددين:

5 + π = 5 + 3.14 = 8.14

ولكن، إذا حاولنا إضافة عدد إلى نوع بيانات آخر، مثل الكلمات، فستصبح الأمور مربكة وغير ذات معنى. فكيف ستحل المعادلة التالية مثلًا؟

hsoub + 8

بالنسبة إلى الكلمة hsoub، يمكن عدكل نوع من أنواع البيانات مختلفًا تمامًا، مثل الكلمات والأعداد، لذلك يتعين علينا توخي الحذر بشأن كيفية استخدامها، وكيفية التعامل معها في العمليات.

الأعداد

سيُفسَّر كل عدد تُدخله إلى بايثون كعدد؛ ليس مطلوبًا منك إعلان نوع البيانات الذي تدخله لأنّ بايثون تَعدُّ أيّ عدد مكتوب بدون فواصل عشرية بمثابة عدد صحيح (integer، كما هو حال 138)، وأيّ عدد مكتوب بفواص لعشرية بمثابة عدد عشري (float كما هو حال 138.0).

الأعداد الصحيحة

كما هو الحال في الرياضيات، الأعداد الصحيحة (integer) في البرمجة هي أعداد كاملة، يمكن أن تكون موجبة أو سالبة أو معدومة (...، 1،0،-1، ...). ويُعرف هذا النوع أيضًا باسم int. كما هو الحال مع لغات البرمجة الأخرى، يجب ألا تستخدم الفواصل في الأعداد المؤلفة من أربعة أرقام أو أكثر، لذلك لا تكتب 1,000 في برنامجك، واكتب 1000.

يمكننا طباعة العدد الصحيح على النحو التالي:

print(-25)

وسينتج:

-25

أو يمكننا الإعلان عن متغير، والذي هو في هذه الحالة رمزٌ للعدد الذي نستخدمه أو نتعامل معه، مثلًا:

my_int = -25
print(my_int)

وسينتج لنا:

-25

يمكننا أن نجري العمليات الحسابية على الأعداد الصحيحة في بايثون:

int_ans = 116 - 68
print(int_ans)

المخرجات:

48

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

الأعداد العشرية

الأعداد العشرية (Floating-Point Numbers) هي أعداد حقيقية، مما يعني أنه يمكن أن تكون أعدادًا جذرية أو غير نسبية. لهذا السبب، يمكن أن تحتوي الأعداد العشرية على جزء كسري، مثل 9.0 أو -116.42. وببساطة، فالأعداد العشرية هي أعداد تحتوي الفاصلة العشرية.

كما فعلنا مع الأعداد الصحيحة، يمكننا طباعة الأعداد العشرية هكذا:

print(17.3)

وسينتج لنا:

17.3

يمكننا أيضًا أن نعلن عن متغير يحتوى عددًا عشريًا، مثلًا:

my_flt = 17.3
print(my_flt)

الناتج:

17.3

وكما هو الحال مع الأعداد الصحيحة، يمكننا أن نجرى العمليات الحسابية على الأعداد العشرية:

flt_ans = 564.0 + 365.24
print(flt_ans)

الناتج:

929.24

الأعداد الصحيحة والأعداد العشرية مختلفان عمومًا، إذ أنّ 33.0، لأنّ 3 عدد صحيح، بينما 3.0 عدد عشري.

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

هناك قيمتان فقط لنوع البيانات المنطقية (Boolean) وهما True و False. تُستخدم القيم المنطقية لتمثيل قيم الحقيقة الموافقة للمنطق الرياضياتي.

عادة ما يبدأ اسم البيانات المنطقية بالحرف B، إشارة إلى اسم عالم الرياضيات George Boole. القيمتان True و False تُكتبان دائمًا بحرفين كبيرين T و F، لأنها قيم خاصة في بايثون.

الكثير من العمليات الحسابية في الرياضيات تُنتج قيمًا منطقيًا، إما True أو False:

  • أكبر من
    • 500 > 100 True
    • 1 > 5 False
  • أصغر من
    • 200 < 400 True
    • 4 < 2 False
  • التساوي
    • 5 = 5 True
    • 500 = 400 False

كما هو الحال مع الأعداد، يمكننا تخزين القيم المنطقية في المتغيرات:

my_bool = 5 > 8

يمكننا بعد ذلك طباعة القيمة المنطقية باستدعاء الدالة print()‎:

print(my_bool)

بما أنّ العدد 5 ليس أكبر من 8، فسوف نحصل على المخرجات التالية:

False

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

السلاسل النصية

السلسلة النصية (string) هي عبارة عن تسلسل من محرف واحد أو أكثر (محارف وأعداد ورموز)، ويمكن أن تكون ثابتة أو متغيرة. تحاط السلاسل النصية إما بعلامات الاقتباس المفردة ' أو علامات الاقتباس المزدوجة "، لذلك لإنشاء سلسلة نصية، ضع سلسلة من الأحرف بين علامتي اقتباس:

'هذه سلسلة نصية ضمن علامتي اقتباس مفردتين'
"هذه سلسلة نصية ضمن علامتي اقتباس مزدوجتين"

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

البرنامج البسيط "Hello, World!‎" يوضح كيف يمكن استخدام السلاسل النصية في البرمجة، حيث أنّ حروف عبارة Hello، World!‎ تمثل سلسلة نصية.

print("Hello, World!")

كما هو الحال مع أنواع البيانات الأخرى، يمكننا تخزين السلاسل النصية في المتغيرات:

hw = "Hello, World!"

وطباعة السلسلة عن طريق استدعاء المتغير:

print(hw)  // Hello, World!

مثل الأعداد، هناك العديد من العمليات التي يمكن إجراؤها على السلاسل النصية من أجل تحقيق النتائج التي نسعى إليها. السلاسل النصية مهمة لتوصيل المعلومات إلى المستخدم، وكذلك لتمكين المستخدم من تمرير المعلومات إلى البرنامج.

القوائم

القائمة (lists) عبارة عن تسلسل مرتّب قابل للتغيير (mutable). وكما تُعرّف السلاسل النصية باستخدام علامات الاقتباس، يتم تعريف القوائم باستخدام الأقواس المعقوفة [].

مثلًا، هذه قائمة تحوي أعدادًا صحيحةً:

[-3, -2, -1, 0, 1, 2, 3]

وهذه قائمة من الأعداد العشرية:

[3.14, 9.23, 111.11, 312.12, 1.05]

وهذه قائمة من السلاسل النصية:

['shark', 'cuttlefish', 'squid', 'mantis shrimp']

في المثال التالي، سنسمّى قائمة السلاسل النصية خاصتنا sea_creatures:

sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp']

يمكننا طباعتها عن طريق استدعاء المتغير:

print(sea_creatures)

وسترى أنّ المخرجات تشبه تمامًا القائمة التي أنشأناها:

['shark', 'cuttlefish', 'squid', 'mantis shrimp']

القوائم هي نوع بيانات مرن للغاية، لأنها قابلة للتغيير، حيث يمكن إضافة قيم إليها، أو إزالته، أو تغييرها. هناك نوع بيانات آخر مشابه لقوائم، بيْد أنه غير قابل للتغيير، ويُسمى الصف (tuple).

الصفوف (Tuples)

يُستخدم الصف (tuple) لتجميع البيانات. إنه تسلسل ثابت من العناصر وغير قابل للتغيير.

الصفوف تشبه القوائم إلى حد كبير، لكنها تستخدم الأقواس () بدلًا من الأقواس المعقوفة []، ولأنها غير قابلة للتغيير، فلا يمكن تغيير أو تعديل قيمها.

تبدو الصفوف كالتالي:

('blue coral', 'staghorn coral', 'pillar coral')

يمكننا تخزين الصفوف في المتغيرات وطباعتها:

coral = ('blue coral', 'staghorn coral', 'pillar coral')
print(coral)

والمخرجات هي:

('blue coral', 'staghorn coral', 'pillar coral')

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

القواميس

القاموس (Dictionaries) هو نوع مُضمّن في بايثون، إذ تُربط مفاتيحُ بالقيم المقابلة لها في شكل أزواج، هذه الأزواج مفيدة لتخزين البيانات في بايثون. يتم إنشاء القواميس باستخدام الأقواس المعقوصة {}.

تُستخدم القواميس عادةً لحفظ البيانات المترابطة، مثل المعلومات المقابلة لرقم تعريف. يبدو القاموس كما يلي:

{'name': 'Sammy', 'animal': 'shark', 'color': 'blue', 'location': 'ocean'}

ستلاحظ أنه بالإضافة إلى الأقواس المعقوصة، توجد علامات النقطتين الرأسيتين (colons) داخل القاموس. الكلمات الموجودة على يسار النقطتين الرأسيتين هي المفاتيح. المفاتيح قد تكون أيّ نوع بيانات غير قابل للتغيير. المفاتيح في القاموس أعلاه هي: 'name', 'animal', 'color', 'location'‎.

الكلمات الموجودة على يمين النقطتين هي القيم. يمكن أن تتألف القيم من أي نوع من البيانات. القيم في القاموس أعلاه هي: 'Sammy', 'shark', 'blue', 'ocean'‎.

مثل أنواع البيانات الأخرى، يمكننا تخزين القواميس في متغيرات، وطباعتها:

sammy = {'name': 'Sammy', 'animal': 'shark', 'color': 'blue',  'location': 'ocean'}
print(sammy)

والمخرجات هي:

{'color': 'blue', 'animal': 'shark', 'name': 'Sammy', 'location': 'ocean'}

إذا أردت الحصول على اللون (color) الخاص بـ Sammy، فيمكنك القيام بذلك عن طريق استدعاء sammy ['color']‎. هذا مثال على ذلك:

print(sammy['color']) # blue

القواميس من أنواع البيانات المهمة في برامج بايثون.

خلاصة

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

يمكنك التعرف على المزيد من التفاصيل عن هذه الأنواع في موسوعة حسوب:

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

هذه المقالة جزء من سلسة مقالات حول تعلم البرمجة في بايثون 3.

ترجمة -وبتصرّف- للمقال Understanding Data Types in Python 3 لصاحبته Lisa Tagliaferri

اقرأ أيضًا





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن