مقدمة
Python هي لغة برمجة تُستخدم غالباً لأغراض تكامل الأنظمة. تستخدم هذه اللغة شيئاً يُسمى ‘أنواع البيانات’. تساعد أنواع البيانات هذه في تصنيف أو تحديد نوع معين من البيانات. هذا يعني أن نوع بيانات معين يتعلق بقيم وعمليات محددة يمكنك تطبيقها عليه. يتم برمجة وتحرير كل نوع بيانات بطريقة مختلفة. وذلك لأن كل نوع بيانات له طبيعة مختلفة. على سبيل المثال، قد تتعامل مع سلاسل نصية أو أعداد صحيحة.
الهدف من هذا الدليل هو مساعدتك في التعرف على أنواع البيانات المختلفة في Python. ليس هذا فحسب، بل سيكون لدينا أيضاً مناقشة متعمقة حول كيفية تحويل أنواع البيانات إلى بعضها البعض. بنهاية هذا البرنامج التعليمي، يجب أن تعرف أنواع البيانات مثل الأرقام، والسلاسل النصية، والصفوف (tuples)، والقوائم (lists)، وكيفية تحويلها.
تحويل الأرقام
عندما نتحدث عن الأرقام في Python، فقد نشير إلى أحد خيارين. قد نتعامل إما مع أعداد صحيحة أو أعداد عشرية. قد تكون هناك بعض الأوقات التي تحتاج فيها إلى تحويل أحدهما إلى الآخر. من الممكن لك بسهولة تحويل الأعداد الصحيحة إلى أعداد عشرية ذات فاصلة عائمة والأعداد العشرية إلى أعداد صحيحة.
-
التحويل: من أعداد صحيحة إلى أعداد عشرية
أولاً، سنبدأ باستكشاف كيف يمكنك تحويل الأعداد الصحيحة إلى أعداد عشرية. الوسيلة للقيام بذلك هي باستخدام أمر يسمى float(). ستقوم هذه الدالة بتحويل أي عدد صحيح معطى إلى عدد عشري بكسور عشرية. كل ما عليك فعله هو وضع العدد الصحيح داخل القوسين. على سبيل المثال، لنفترض أنك تريد تحويل العدد الصحيح 57 إلى نوع بيانات عشري. إليك كيف يمكنك القيام بتحويله:
|
1 |
float(57) |
نتيجة لتشغيلك هذا الأمر، فإن العدد الصحيح 57 سيتغير إلى العدد العشري 57.0.
طريقة أخرى للقيام بذلك هي استخدام متغير. يمكنك تمثيل العدد الصحيح الخاص بك من خلال متغير ثم طباعة العدد العشري باستخدام الأمر أعلاه. لنفترض أنك أعلنت عن المتغير f ليكون مساوياً لـ 57. إليك كيف سيتم التحويل في هذه الحالة:
|
1 2 3 |
f = 57 print(float(f)) |
|
1 2 3 |
المخرجات 57.0 |
-
التحويل: من أعداد عشرية إلى أعداد صحيحة
من الممكن أيضاً تحويل الأعداد العشرية إلى أعداد صحيحة. على غرار الأمر السابق، يمكن إجراء هذا التحويل باستخدام الدالة int(). تماماً مثل المرة السابقة، كل ما عليك فعله هو إضافة العدد العشري ذو الفاصلة العائمة داخل القوسين بعد الدالة.
في مثالنا، سنقوم بتحويل العدد العشري 390 إلى عدد صحيح. لإجراء التحويل، سنقوم بتشغيل الأمر التالي:
|
1 |
int(390.8) |
نتيجة لتشغيل هذه الدالة، فإن 390 سيتغير إلى صيغته العشرية: 390.8.
وبالمثل، يمكنك إجراء التحويل بمساعدة المتغيرات. ليس هذا فحسب، بل يمكنك إجراء تحويلات متعددة في نفس الوقت. لنفترض أن b يساوي 125.0 و c يساوي 390.8. إليك كيف يمكنك طباعة قيم الفاصلة العائمة هذه:
|
1 2 3 4 5 |
b = 125.0 c = 390.8 print(int(b)) print(int(c)) |
|
1 2 3 4 |
المخرجات 125 390 |
كما ترى، تحولت الأعداد الصحيحة بنجاح إلى أعداد عشرية.
شيء واحد مهم يجب تذكره أثناء التحويل من عدد عشري إلى عدد صحيح هو أن الدالة لا تقرب القيم لأعلى. هذا يعني أنه يتم ببساطة إزالة الجزء العشري من العدد العشري. لن تقوم الدالة بتقريب قيمة مثل 390.8 إلى 390 - بل ستقوم ببساطة بإزالة الـ 0.8 وحدة لتمنحك عدداً صحيحاً.
-
التحويل: من خلال القسمة
من الممكن أيضاً تحويل الأعداد الصحيحة إلى أعداد عشرية من خلال القسمة. قد يعطيك قسمة الأعداد الصحيحة على بعضها البعض خارج قسمة عبارة عن عدد عشري ذو فاصلة عائمة. على سبيل المثال، عند قسمة 5 على 2، ستكون الإجابة التي تتلقاها هي 2.5 وهو عدد عشري. ألقِ نظرة:
|
1 2 |
a = 5 / 2 print(a) |
|
1 2 3 |
المخرجات 2.5 |
هذه ميزة خاصة بـ Python 3. في Python 2، فإن إجراء مثل هذه القسمة سيعطيك عدداً صحيحاً كإجابة فقط، مثل هذا: 5 / 2 = 2.
التحويل باستخدام السلاسل النصية
قبل أن نبدأ الحديث عن كيفية إجراء التحويل باستخدام السلاسل النصية، يجب أن تعرف ما هي السلاسل النصية (strings) في الواقع. إذا لم تكن تعرف بالفعل، فالسلاسل النصية هي تتابعات من الأحرف. يمكن أن تكون هذه سلسلة من الحروف، أو الأرقام، أو الرموز، أو أي أحرف أخرى. قد تكون على دراية بالسلاسل النصية في سياق بيانات الكمبيوتر. هذا لأن أجهزة الكمبيوتر تستخدم هذا النوع من البيانات بشكل متكرر لأداء عملياتها.
إذا كنت تتعامل مع بيانات من إنشاء المستخدمين، فستحتاج إلى إجراء هذه التحويلات كثيرًا. لهذا السبب من المفيد معرفة كيفية تحويل الأرقام إلى سلاسل نصية وتحويل السلاسل النصية إلى أرقام.
-
التحويل: من الأرقام إلى السلاسل النصية
يمكنك استخدام دالة str() لتحويل الأرقام إلى سلاسل نصية. تمامًا كما في السابق، ستضع القيمة التي تريد تحويلها داخل الأقواس. يمكن أن تكون هذه القيمة إما رقمًا أو متغيرًا. كبداية، دعنا نلاحظ كيف يمكنك تحويل عدد صحيح، مثل 12، إلى قيمة سلسلة نصية:
|
1 |
str(12) |
|
1 2 3 |
الناتج '12' |
كما ترى، يظهر الناتج قيمة سلسلة نصية. يُشار إلى قيمة السلسلة النصية بعلامات الاقتباس.
من ناحية أخرى، يمكنك أيضًا وضع متغيرات داخل الدالة بدلاً من الأعداد الصحيحة. هذا هو المكان الذي تصبح فيه الدالة مفيدة حقًا. على سبيل المثال، افترض أنك تريد تتبع والإبلاغ عن عدد أسطر البرمجية التي يكتبها المستخدم في إطار زمني معين. لعرض هذه المعلومات للمستخدم، تحتاج إلى طباعة كل من السلسلة النصية وقيم الأعداد الصحيحة معًا، مثل هذا:
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Congratulations, " + user + "! You just wrote " + lines + " lines of code.") |
لسوء الحظ، إذا حاولت تشغيل الكود أعلاه، فستتلقى خطأً مثل هذا:

هذا يعني أنك بحاجة إلى تحويل متغير lines إلى قيمة سلسلة نصية لتتمكن من تشغيل الكود.
|
1 2 3 4 |
user = "Sammy" lines = 50 print("Congratulations, " + user + "! You just wrote " + str(lines) + " lines of code.") |
الآن بعد أن وضعت دالة التحويل، ستتمكن من تشغيل الأمر بنجاح. سترى شيئًا مثل ما يلي كمخرج لك:
|
1 2 3 |
الناتج تهانينا, Sammy! أنت للتو كتبت 50 أسطر من البرمجية. |
وبالمثل، إذا كنت ترغب في إضافة عدد عشري (float) بدلاً من عدد صحيح إلى سلسلة نصية، فعليك القيام بالشيء نفسه. تمامًا كما في السابق، يمكنك إما إضافة القيمة مباشرة أو استخدام متغير. على سبيل المثال:
|
1 2 3 |
print(str(421.034)) f = 5524.53 print(str(f)) |
|
1 2 3 4 |
الناتج 421.034 5524.53 |
إذا كنت تريد التأكد من أن القيمة صحيحة، يمكنك دمجها مع سلسلة نصية مثل هذا:
|
1 2 |
f = 5524.53 print("Sammy has " + str(f) + " points.") |
|
1 2 3 |
الناتج Sammy لديه 5524.53 نقاط. |
بما أنك لم تتلقَ أي خطأ، فهذا يعني أن عملية التحويل تمت بنجاح.
-
التحويل: من السلاسل النصية إلى الأرقام
وبالمثل، يمكنك تحويل السلاسل النصية إلى أرقام أيضًا. إذا كانت السلسلة النصية الخاصة بك لا تحتوي على أي منازل عشرية، فمن الأفضل تحويلها إلى عدد صحيح. يمكنك تحويلها إلى أعداد صحيحة باستخدام دالة int() .
سنستمر في استخدام مثالنا السابق من تحويل الأعداد الصحيحة. لذلك، افترض أن مستخدمًا يدعى Sammy يريد تتبع تقدمه في كتابة الكود بشكل يومي. كمبرمج، تريد تقديم هذه المعلومات للمستخدم بطريقة إبداعية. ولكن نظرًا لأن هذه القيم مخزنة كسلاسل نصية، فلا يمكنك تطبيق بعض المعاملات الأساسية عليها مثل – (الطرح). يمكنك ملاحظة ذلك في ما يلي:
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = lines_today - lines_yesterday print(lines_more) |

كما ترى، لا يعمل المعامل على قيم السلاسل النصية. بدلاً من ذلك، تتلقى خطأً. لتتمكن من العمل مع القيم، تحتاج إلى تحويل السلاسل النصية إلى أعداد صحيحة باستخدام دالة int() :
|
1 2 3 4 5 6 |
lines_yesterday = "50" lines_today = "108" lines_more = int(lines_today) - int(lines_yesterday) print(lines_more) |
|
1 2 3 |
المخرجات 58 |
هنا، lines_more هو متغير. هذا المتغير عبارة عن عدد صحيح ويساوي القيمة الناتجة والتي تساوي 58 في مثالنا.
من ناحية أخرى، يمكنك تحويل السلاسل النصية إلى أعداد عشرية (floats) باستخدام دالة float() إذا كانت هناك أرقام عشرية. في هذا المثال، سنستخدم النقاط التي يكتسبها المستخدم Sammy بدلاً من عدد السطور التي يكتبها. يتم تسجيل النقاط في صورة أرقام عشرية:
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = total_points + new_points print(new_total_points) |
|
1 2 3 |
المخرجات 5524.5345.30 |
على الرغم من أن المخرجات لا تظهر كخطأ، إلا أنها لا تزال غير صحيحة. لقد عمل معامل الجمع + في هذه الحالة. ولكن بدلاً من جمع الرقمين، قام ببساطة بوضع قيمتي السلسلتين النصيتين بجانب بعضهما البعض.
لهذا السبب تحتاج إلى تحويل هذه السلاسل النصية إلى قيم عشرية أولاً باستخدام دالة float() :
|
1 2 3 4 5 6 |
total_points = "5524.53" new_points = "45.30" new_total_points = float(total_points) + float(new_points) print(new_total_points) |
|
1 2 3 |
المخرجات 5569.83 |
كما تلاحظ أعلاه، تم جمع القيمتين معًا. تذكر: إذا حاولت تحويل قيمة سلسلة نصية عشرية إلى عدد صحيح، فستحصل على خطأ مثل هذا:
|
1 2 |
f = "54.23" print(int(f)) |

وبالتالي، تحتاج إلى تحويل نوع بيانات السلسلة النصية إلى أرقام أولاً. بعد ذلك، يمكنك إجراء عمليات أخرى والتحويل على القيمة الرقمية بسهولة.
التحويل إلى Tuples و Lists
تعد القوائم (Lists) و tuples من أنواع البيانات الأخرى التي يمكنك استخدامها في Python 3. يتكون كلاهما من تسلسل من العناصر. الفرق بين الاثنين هو أنه في حين أن القائمة (list) قابلة للتعديل (mutable)، فإن الـ tuple غير قابلة للتعديل (immutable). بالإضافة إلى ذلك، يتم وضع عناصر القائمة داخل أقواس مربعة [ ]، بينما توضع عناصر الـ tuple داخل أقواس دائرية ( ).
-
التحويل: من Lists إلى Tuples
بادئ ذي بدء، دعنا نستكشف كيف يمكنك تحويل قائمة (list) إلى tuple. قد تحتاج إلى إجراء هذا التحويل إذا كنت بحاجة إلى نوع بيانات غير قابل للتعديل. لهذا الغرض، ستحتاج إلى استخدام الدالة tuple():
|
1 |
print(tuple(['pull request', 'open source', 'repository', 'branch'])) |
|
1 2 3 |
المخرجات ('pull request', 'open source', 'repository', 'branch') |
كما ترى، أصبحت عناصر القائمة الآن في tuple. يظهر هذا من خلال الأقواس الدائرية التي تحيط بالعناصر.
يمكنك أيضًا استخدام دالة tuple() مع متغير يساوي قائمة العناصر:
|
1 2 3 |
sea_creatures = ['shark', 'cuttlefish', 'squid', 'mantis shrimp'] print(tuple(sea_creatures)) |
|
1 2 3 |
المخرجات ('shark', 'cuttlefish', 'squid', 'mantis shrimp') |
بشكل ملائم، يمكنك تحويل أي نوع بيانات إلى tuple. على سبيل المثال، إليك كيفية تحويل سلسلة نصية إلى tuple:
|
1 |
print(tuple('Sammy')) |
|
1 2 3 |
المخرجات ('S', 'a', 'm', 'm', 'y') |
يمكن تحويل السلاسل النصية إلى tuples لأنها قابلة للتكرار (iterable). وبطبيعة الحال، لا يمكن تحويل أنواع البيانات غير القابلة للتكرار إلى tuples. لنفترض أنك تريد تحويل بعض الأعداد الصحيحة أو عدد عشري إلى tuple. إذا قمت بتشغيل دالة tuple()، فستتلقى خطأً مثل هذا:
|
1 |
print(tuple(5000)) |
|
1 2 3 |
المخرجات TypeError: 'int' object is not iterable |
يوضح خطأ النوع (type error) أن العدد الصحيح غير قابل للتكرار. ولهذا السبب لا يمكن إتمام التحويل. هناك طريقة معقدة تتمثل في تحويل العدد الصحيح أولاً إلى سلسلة نصية ثم إلى صف (tuple). يمكنك القيام بذلك باستخدام الدالة التالية: tuple(str(5000)). ولكننا نوصي بتجنب مثل هذه التعقيدات.
-
التحويل: من الصفوف (Tuples) إلى القوائم (Lists)
على العكس من ذلك، قد تضطر إلى تحويل صف (tuple) إلى قائمة (list) إذا كنت بحاجة إلى بيانات قابلة للتعديل. لهذا الغرض، ستستخدم الدالة list() كالتالي:
|
1 |
print(list(('المرجان الأزرق', 'مرجان قرن الوعل', 'المرجان العمودي'))) |
|
1 2 3 |
المخرجات ['المرجان الأزرق', 'مرجان قرن الوعل', 'المرجان العمودي'] |
يشير وجود الأقواس المربعة إلى أن المخرجات الناتجة هي صف. عند كتابة الكود لتحويل صف إلى قائمة باستخدام list()، يجب عليك التأكد من تضمين الأقواس لدالة list() وكذلك دالة print(). ومع ذلك، فإن هذا يجعل الكود غير مقروء بعض الشيء. لجعله أقل تعقيدًا، يمكنك إزالة زوج من الأقواس باستخدام متغير بدلاً من ذلك:
|
1 2 3 |
coral = ('المرجان الأزرق', 'مرجان قرن الوعل', 'المرجان العمودي') list(coral) |
على غرار الصفوف، يمكنك أيضًا تحويل السلاسل النصية إلى قوائم مباشرة:
|
1 |
print(list('shark')) |
|
1 2 3 |
المخرجات ['s', 'h', 'a', 'r', 'k'] |
الخاتمة
سيساعدك هذا الدليل إذا كنت تبحث عن طرق لتحويل أنواع البيانات في Python 3. لقد ناقشنا بالتفصيل أنواع البيانات المختلفة وكيفية تحويلها إلى بعضها البعض باستخدام دوال Python المدمجة. ستساعدك معرفة هذه التحويلات في جعل تجربتك البرمجية أسهل بكثير وأكثر شمولاً.
لمزيد من استكشاف ما يمكنك القيام به باستخدام Python، اتبع أدلتنا الأخرى:
- اطلع على كيفية تثبيت Python 3 وإعداد بيئة برمجة محلية على Ubuntu 16.04.
- تابع معنا لتتعلم كيفية استخراج بيانات Twitter باستخدام Python.
- تعلم كيفية استرداد بيانات NASDAQ لكل دقيقة باستخدام Python.
- يمكنك أيضًا الاطلاع على كيفية استخدام سكربت CloudSigma Python لأتمتة تحويل لقطة شاشة لمحرك الأقراص إلى محرك أقراص كامل على منصتنا.
حوسبة سعيدة!
التعليقات
لا توجد تعليقات بعد. كن أول من يعلق.