الدرس 11 من دورة Python للمبتدئين

تحويل input إلى رقم: افهم int و float قبل أن تستخدمهما

في الدرس السابق عرفنا أن input ترجع نصًا دائمًا. الآن سنتعلم كيف نحول هذا النص إلى رقم صحيح أو رقم عشري حتى نستطيع استخدامه في العمليات الحسابية.

المستوى: مبتدئ جدًا النتيجة: استخدام int و float بفهم مدة التطبيق: 20 - 25 دقيقة
طريقة CIT للتعلم الهادئ: لا تحفظ السطر كما هو. افهم أن input تستقبل نصًا، و int أو float يحولان هذا النص إلى رقم، ثم نخزن الرقم داخل المتغير.
مهم قبل البداية: سننشئ ملفًا جديدًا باسم lesson_11.py داخل مجلد python_course. هذا الدرس مهم جدًا؛ لأنه يشرح لماذا نضع int و float حول input وليس في مكان عشوائي.

ما النتيجة التي يجب أن تخرج بها؟

في نهاية الدرس ستفهم هذا السطر، وليس فقط تكتبه:

age = int(input("اكتب عمرك: "))

وستعرف أن Python يقرأه بهذا المعنى:

اسأل المستخدم
خذ الإجابة كنص
حوّل النص إلى رقم صحيح
احفظ الرقم داخل age
input يستقبل من المستخدم نصًا.
int يحول النص إلى رقم صحيح.
float يحول النص إلى رقم عشري.
خريطة تحويل input إلى رقم في Python
1

لماذا لا يكفي input وحده؟

input تستقبل ما يكتبه المستخدم كنص دائمًا. حتى لو كتب المستخدم رقمًا مثل 20، فإن Python يستقبله كأنه نص:

"20"

النص لا نستخدمه مباشرة في العمليات الحسابية. لذلك نحتاج تحويله إلى رقم.

المثال التالي يستقبل العمر كنص:

age_text = input("اكتب عمرك: ")
print(type(age_text))

إذا كتبت 20، سترى أن النوع هو:

<class 'str'>
تحقق قبل الانتقال ✅ هل فهمت أن input لا تعطيك رقمًا جاهزًا للحساب، بل تعطيك نصًا يحتاج تحويلًا؟
2

المسافة بعد النقطتين داخل رسالة input

لاحظ هذا السطر:

age = input("اكتب عمرك: ")

تركنا مسافة بعد النقطتين داخل النص، قبل إغلاق علامة التنصيص. هذه المسافة ليست شرطًا لتشغيل Python، لكنها مهمة لتنسيق ما سيكتبه المستخدم.

أهمية المسافة بعد النقطتين في رسالة input

بدون المسافة قد تظهر الإجابة ملاصقة للسؤال:

اكتب عمرك:20

ومع المسافة تظهر بشكل أوضح:

اكتب عمرك: 20
القاعدة: المسافة بعد النقطتين داخل رسالة input ليست أمرًا برمجيًا، لكنها عادة جيدة حتى تكون تجربة المستخدم مرتبة وواضحة.
سؤال سريع 🧠 لماذا نكتب "اكتب عمرك: " وليس "اكتب عمرك:"؟ حتى لا تكون إجابة المستخدم ملاصقة للسؤال.
3

أنشئ ملف الدرس الحادي عشر

افتح مجلد الدورة داخل VS Code:

python_course

ثم أنشئ ملفًا جديدًا باسم:

lesson_11.py

افتح الملف داخل Editor.

توقف لحظة ✅ هل ظهر الملف lesson_11.py داخل Explorer؟ إذا نعم، انتقل للخطوة التالية.
4

الطريقة التعليمية: افصل الاستقبال عن التحويل

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

age_text = input("اكتب عمرك: ")
age = int(age_text)

print(age)
print(type(age))

هنا يحدث التالي:

age_text يستقبل النص من input
int(age_text) يحول النص إلى رقم صحيح
age يحفظ الرقم بعد التحويل
لماذا استخدمنا age_text؟ حتى يكون واضحًا أن القيمة الأولى نص، ثم بعد التحويل نخزنها في age كرقم.
تحقق قبل الانتقال ✅ هل فهمت الفرق بين age_text كنص، و age كرقم بعد التحويل؟
5

الطريقة المختصرة: int حول input

بعد أن فهمنا الخطوتين، يمكن اختصارها في سطر واحد:

age = int(input("اكتب عمرك: "))
ترتيب تنفيذ int input في Python

Python ينفذ الجهة اليمنى أولًا:

int(input("اكتب عمرك: "))

ثم يخزن النتيجة النهائية داخل المتغير:

age = الرقم بعد التحويل
انتبه: لا نضع int قبل اسم المتغير. نضع int حول القيمة التي نريد تحويلها. لذلك الصحيح هو int(input(...)) وليس int age.
سؤال سريع 🧠 أين موقع int؟ الإجابة: حول input لأنها تحول ناتج input من نص إلى رقم.
6

استخدم العمر في عملية حسابية

الآن بعد أن أصبح العمر رقمًا، نستطيع استخدامه في الحساب:

age = int(input("اكتب عمرك: "))
next_year_age = age + 1

print("عمرك السنة القادمة:", next_year_age)

إذا كتب المستخدم 20، ستكون النتيجة:

عمرك السنة القادمة: 21
الفكرة المهمة: لو بقي age نصًا، فلن يكون مناسبًا للحساب. بعد int أصبح رقمًا يمكن جمعه وطرحه.
تحقق قبل الانتقال ✅ هل ظهر العمر بعد سنة؟ إذا نعم، فأنت استخدمت int بشكل عملي.
7

متى نستخدم float؟

نستخدم float عندما نتوقع رقمًا عشريًا، مثل السعر أو الوزن أو الطول أو التقييم.

متى نستخدم int ومتى نستخدم float في Python

مثال على السعر:

price = float(input("اكتب السعر: "))
tax = price * 0.15
total = price + tax

print("الإجمالي:", total)

إذا كتب المستخدم:

100.5

يستطيع Python التعامل معه كرقم عشري.

سؤال سريع 🧠 السعر قد يحتوي كسورًا مثل 15.5، لذلك نستخدم معه int أم float؟ الإجابة: float.
8

لماذا لا نستخدم Fraction الآن؟

قد تسأل: لماذا استخدمنا float ولم نستخدم Fraction؟

في Python يوجد نوع متقدم اسمه Fraction داخل مكتبة fractions، ويستخدم عندما نحتاج كسورًا دقيقة مثل ثلث أو نصف بطريقة رياضية.

from fractions import Fraction

x = Fraction(1, 3)

لكن هذا ليس مناسبًا في بداية التعلم؛ لأنه يحتاج استيراد مكتبة وفهمًا أعمق للكسور. في هذه المرحلة نحتاج فقط:

int   للأرقام الكاملة
float للأرقام العشرية
مهم: int و float مكتوبتان بهذا الشكل في Python. الفكرة نفسها موجودة في لغات كثيرة، لكن الأسماء وطريقة الكتابة قد تختلف من لغة إلى أخرى.
تحقق قبل الانتقال ✅ هل فهمت أن Fraction موضوع متقدم، وأن int و float يكفيان لهذه المرحلة؟
9

تدريب صغير: احسب السعر مع الضريبة

اكتب برنامجًا يسأل المستخدم عن السعر، ثم يحسب ضريبة 15% والإجمالي:

price = float(input("اكتب السعر: "))

tax = price * 0.15
total = price + tax

print("الضريبة:", tax)
print("الإجمالي:", total)
ماذا تعلمت هنا؟ تعلمت أن input أخذت السعر كنص، ثم float حولته إلى رقم عشري، وبعدها استخدمناه في عملية حسابية.
تحقق قبل الانتقال ✅ هل ظهرت الضريبة والإجمالي؟ إذا نعم، فأنت بدأت تستخدم input في برنامج حسابي حقيقي.

اختبار نهاية الدرس

قبل الانتقال للدرس القادم، تأكد من هذه النقاط:

✅ فهمت أن input ترجع نصًا دائمًا.
✅ عرفت أن المسافة بعد النقطتين داخل رسالة input تنسق إجابة المستخدم.
✅ فهمت أن int تحول النص إلى رقم صحيح.
✅ فهمت أن float تحول النص إلى رقم عشري.
✅ عرفت أن int و float توضعان حول القيمة التي نريد تحويلها.
✅ عرفت أن Python ينفذ الجهة اليمنى أولًا ثم يخزن النتيجة في المتغير.
✅ استخدمت int لحساب العمر بعد سنة.
✅ استخدمت float لحساب السعر مع الضريبة.
إذا فهمت هذه النقاط: أنت لم تحفظ int و float فقط، بل فهمت مكانهما وسبب استخدامهما داخل الكود.

خلاصة الدرس

input تستقبل من المستخدم نصًا. إذا أردت استخدام هذه القيمة في الحساب، يجب أن تحولها إلى رقم. استخدم int للأرقام الكاملة، و float للأرقام العشرية.

تذكر القاعدة:

age = int(input("اكتب عمرك: "))
price = float(input("اكتب السعر: "))

ضع int أو float حول القيمة التي تريد تحويلها، وليس قبل اسم المتغير.

في الدرس القادم سنستخدم ما تعلمناه لبناء برنامج صغير يسأل المستخدم عن قيم، يحسبها، ثم يعرض نتيجة مرتبة.

الدرس السابق الدرس التالي: مشروع حسابي صغير قريبًا فهرس الدورة