أنواع البيانات والتحويل بينها
نتعرّف على أنواع القيم، ونحوّل بينها عند الحاجة. ⏱ نحو 15 دقيقة.
- تميّز الأنواع الأربعة:
intوfloatوstrوbool. - تعرف نوع أي قيمة بالدالة
type. - تفرّق بين جمع الأعداد ولصق النصوص.
- تحوّل بين الأنواع بـ
intوfloatوstr.
١لكل قيمة نوع
في الحياة نفرّق بين العدد والكلمة: نجمع الأعداد ولا نجمع الأسماء. وبايثون كذلك، لكل قيمة نوع. أهمها أربعة:
| النوع | اسمه | أمثلة |
|---|---|---|
int | عدد صحيح | 20 و -5 و 0 |
float | عدد عشري | 3.5 و 99.9 |
str | نص | "سارة" و "123" |
bool | منطقي | True (صح) أو False (خطأ) |
٢الدالة type
إذا لم تعرف نوع قيمة، اسأل بايثون بالدالة type():
print(type(20))print(type(3.5))print(type("سارة"))print(type(True))
٣"5" ليست 5
الرقم بين علامتي تنصيص نص، لا عدد. انظر الفرق عند الجمع:
print(5 + 5)print("5" + "5")
مع العددين يحدث جمع: 10. ومع النصين يحدث لصق: "55". الشكل متشابه، لكن النوع يغيّر النتيجة.
٤التحويل بين الأنواع
نحوّل القيمة من نوع إلى آخر بدالة باسم النوع المطلوب:
| الدالة | تحوّل إلى | مثال | الناتج |
|---|---|---|---|
int() | عدد صحيح | int("7") | 7 |
float() | عدد عشري | float("2.5") | 2.5 |
str() | نص | str(10) | "10" |
a = "15"b = "5"print(int(a) + int(b))
ستحتاج التحويل كثيرًا في درس الإدخال: ما يكتبه المستخدم يصل إلى البرنامج نصًّا دائمًا.
٥عندما يفشل التحويل
لا يستطيع بايثون تحويل نص ليس رقمًا إلى عدد، فيظهر خطأ ValueError:
print(int("سارة"))📎 للاستزادة (اختياري): التحويل من عشري إلى صحيح
int() على عدد عشري تحذف الكسر ولا تقرّب:
print(int(7.9))توقّع وتحقّق
ما نوع القيمة 3.14؟
ما نوع القيمة "100"؟
ماذا يطبع print("3" + "4")؟
أي دالة تحوّل النص "8" إلى عدد صحيح؟
int() تحوّل إلى عدد صحيح.الخلاصة
intعدد صحيح،floatعدد عشري،strنص،boolصح أو خطأ.type()تخبرك بنوع القيمة.- العدد يُجمع، والنص يُلصق:
"5" + "5" = "55". int()وfloat()وstr()تحوّل بين الأنواع.- تحويل نص ليس رقمًا إلى عدد يسبب
ValueError.
تحدٍّ برمجي: اجمع النصين
سهللديك درجتان محفوظتان نصًّا. حوّلهما إلى عددين، واطبع مجموعهما مع عنوانه.
mark1 = "40"وmark2 = "35"- حوّل كل واحدة بـ
int(). - اطبع: المجموع: ثم الناتج.
ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:
mark1 = "40"mark2 = "35"
💡 تلميح 1
total = int(mark1) + int(mark2)حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.
mark1 = "40"mark2 = "35"total = int(mark1) + int(mark2)print("المجموع:", total)