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

أهداف الدرس
- يستعمل الدالة input() لقراءة بيانات من المستخدم.
- يعرف أن input() تعيد نصًّا دائمًا.
- يحوّل النص إلى عدد بـ int() و float().
- يكتب برنامجًا بسيطًا يحسب معدل درجتين.
- يفسّر الخطأ ValueError ويتجنبه.
المفهوم الأساسي
تتيح الدالة input() للبرنامج أن يسأل المستخدم ويستقبل إجابته، وتكون الإجابة دائمًا نصًّا، فإن أردنا عملًا حسابيًا حوّلناها إلى عدد.
شرح الدرس
حين يسألك معلمك «ما اسمك؟» فتجيب، يحدث تفاعل بين شخصين. الدالة input() تجعل برنامجك يسأل ويستقبل الجواب كما يفعل المعلم.
قراءة نص من المستخدم
تعرض input() السؤال الذي بين القوسين وتنتظر أن يكتب المستخدم إجابته ويضغط Enter، ثم نخزّن الإجابة في متغير.
name = input("ما اسمك؟ ")
print("مرحبا", name)إذا كتب المستخدم سلمان فسيطبع البرنامج مرحبا سلمان.
الإجابة دائمًا نص
حتى لو كتب المستخدم رقمًا فإن input() تعيده نصًّا من النوع str. وهذا يسبب خطأً منطقيًا عند الجمع:
a = input("الرقم الأول: ")
b = input("الرقم الثاني: ")
print(a + b)إذا أدخل المستخدم 5 ثم 3 فسيظهر 53 وليس 8 لأن جمع النصوص يلصق بعضها ببعض.
تحويل النص إلى عدد
- int(): تحوّل النص إلى عدد صحيح.
- float(): تحوّل النص إلى عدد عشري.
a = int(input("الرقم الأول: "))
b = int(input("الرقم الثاني: "))
print("المجموع:", a + b)وإذا أدخل المستخدم 5 ثم 3 فسيظهر المجموع: 8.
برنامج حساب المعدل
math = float(input("درجة الرياضيات: "))
science = float(input("درجة العلوم: "))
average = (math + science) / 2
print("المعدل:", average)إذا أدخل المستخدم 80 ثم 90 فسيظهر المعدل: 85.0.
الخطأ ValueError
إذا طلب البرنامج رقمًا بـ int() وكتب المستخدم كلمة مثل abc أو عددًا عشريًا مثل 2.5 في int() فسيتوقف البرنامج برسالة ValueError لأن النص لا يصلح للتحويل.
ضع int() أو float() حول input() كلما احتجت أن تُجري حسابًا على ما أدخله المستخدم.
نشاط تعليمي
التطبيق الأول
اكتب برنامجًا يسأل عن اسم الطالب وصفه ثم يطبع جملة ترحيب بهما.
أمرا input يخزنان القيمتين ثم أمر print يطبعهما.
أن يستعمل الطالب input للنصوص.
الموقف الثاني
كتب طالب برنامجًا يجمع رقمين بـ input فظهر 1020 عند إدخال 10 و 20 فما السبب والحل؟
السبب أن input تعيد نصًّا، والحل تغليفها بـ int().
أن يحوّل الطالب النص إلى عدد.
المسألة الثالثة
اكتب برنامجًا يقرأ طول مستطيل وعرضه ويطبع مساحته.
قراءة العددين بـ float(input()) ثم حاصل ضربهما وطباعته.
أن يطبّق الطالب القراءة والحساب.
ملاحظات مهمة
- 1input() تعيد نصًّا دائمًا.
- 2لا يمكن إجراء العمليات الحسابية على النصوص كما على الأرقام.
- 3int() للأعداد الصحيحة و float() للأعداد العشرية.
- 4كتابة غير رقمية داخل int() تسبب ValueError.
أخطاء شائعة
- ✗ خطأجمع قيمتين من input() دون تحويل.✓ الصواب: نلفّهما بـ int() أو float().
- ✗ خطأإدخال عدد عشري في برنامج يستعمل int().✓ الصواب: نستعمل float() للأعداد العشرية.
+عرض جميع الأخطاء (3) ←إخفاء الأخطاء الإضافية
- ✗ خطأنسيان وضع سؤال واضح داخل input().✓ الصواب: نكتب رسالة تعرّف المستخدم بما يُطلب منه.
ملخص الدرس
- input() تقرأ من المستخدم وتعيد نصًّا.
- نحوّل النص إلى عدد بـ int() أو float().
- جمع النصوص يلصقها، وجمع الأعداد يحسب مجموعها.
- إدخال غير رقمي في التحويل يسبب ValueError.
هل أتقنت الدرس؟اختبر نفسك من خلال اختبار قصير من عدة أسئلة.