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

  • لكل قيمة نوع (Type)
  • من أهم المهارات التي تجب على المبرمج: معرفة نوع كل قيمة يتعامل معها
  • لماذا؟ لأن النوع يحدد ما يجوز وما يمتنع لأي شيء تراه في بايثون
    بعد هذا الدرس: ستكون قادرًا على تفسير نتيجة هذا النص:

أصناف العدد

من الأنواع في لغة بايثون التي من صنف العدد (Number):

  1. العدد الصحيح (int): ويستعمل في الفهرسة والعد والترتيب والزيادة والنقصان والفرق ونحو ذلك.
  2. العدد العشري (float): ويستعمل في تمثيل الكميات كالمال، والمسافة، والوقت، ونحو ذلك.

العدد الصحيح (int)

فإذا تأمَّلت النص التالي وجدت جميع هذه القيَم من نوع العدد الصحيح:

ويمكن كتابة الأعداد الكبيرة باستعمال الشرطة السفلية _-إعانة للكاتب وتسهيلا على القارئ- كالتالي:

العدد العشري (float)

أما التالي فهو من نوع العدد العشري لوجود النقطة الفاصلة:

النص (str)

ومن أكثر الأنواع استعمالاً في بايثون؛ النص (str): وهو سلسلة أحرف.
ويُعرَفُ بعلامتي التنصيص سواء المفردة (') أو المزدوجة (") على النحو التالي:

دمج النصوص والمتغيرات النصية

فيجوز دمج النصوص بعلامة الجمع كالتالي:

لاحظ أن كلمة name وكلمة city كلاهم خارج التنصيص؛ لذا فهما يشيران إلى المتغيرين الذين تم تعريفها سابقًا.

تحويل العدد إلى نص

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

ولحل المشكلة السابقة، يجب أولاً تحويل نوع العدد إلى نوع النص باستعمال الدالة str(x) على النحو التالي:

تعويض المتغيرات في النص

نستعمل عادة المتغيرات في النصوص، ويفضل دمجها بالطريقة التالية:

لاحظ وجود حرف f قبل التنصيص الأول، ثم المتغيرات النصية بين {}.

معرفة النوع

ولمعرفة نوع المتغير، نستعمل الدالة type(x) بتمرير القيمة أو المتغير عوضًا عنها.

تأمل ناتج عمليات طباعة النوع لكل من المتغيرات السابقة:

وبعض محررات النص البرمجي تُظهر لك النوع بمجرد تحليق المؤشر على اسم المتغير.

ضرورة تحويل النوع النصي إلى العددي

نلاحظ في هذا المثال ظهور خطأ:

ذلك لأن نوع ما يدخل من chat.read يكون نصًّا (لأنَّ النص هو نوع كل المدخلات قبل تفسيرها):

فيجب تحويله اولاً إلى النوع العشري (float).
نصحح هذا الخطأ، لكن ستلاحظ ظهور خطأ آخر:

الخطأ هنا في كون الجمع بين النص والعدد ممتنعًا.
فيجب تحويل العدد إلى نص أولاً باستعمال الدالة str(x)؛ لأن دمج النص والعدد باستخدام + يسبب خطأ في النوع (TypeError).
نعيد كتابة البرنامج ليكون صحيحًا:

إذًا: عادةً ما نحتاج للتحويل عند الإدخال والإخراج.