طَبِّقْهاتعلّم المبدأ، وطبّقه بيدكمقرر 111 · أساسيات برمجة الحاسب
الدرس 7 · الوحدة 2: أساسيات بايثون

القراءة من المستخدم: input

نجعل البرنامج يسأل المستخدم ويستخدم إجابته. ⏱ نحو 15 دقيقة.

ما اسمك؟سارةأهلًا سارة 👋
بعد هذا الدرس ستستطيع أن:
  • تقرأ قيمة من المستخدم بـ input.
  • تعرف أن input يعيد نصًّا دائمًا.
  • تحوّل المدخلات إلى أعداد بـ int و float.
  • تكتب برنامجًا كاملًا: مدخلات ومعالجة ومخرجات.

١البرنامج يسأل والمستخدم يجيب

حتى الآن كتبنا القيم داخل الكود. لكن البرنامج المفيد يسأل المستخدم، مثل موظف الاستقبال الذي يسألك عن اسمك. الأمر input يعرض سؤالًا، وينتظر المستخدم حتى يكتب ويضغط Enter:

main.py
name = input("ما اسمك؟ ")print("أهلًا", name)
Shell×
>>> %Run main.py
ما اسمك؟ سارة
أهلًا سارة
>>>

ما كتبه المستخدم (باللون الأزرق) يُحفظ في المتغيّر name. وعند الضغط على «▶ شغّل هنا» اكتب قيمتك في خانة «المدخلات».

٢input يعطيك نصًّا دائمًا

حتى لو كتب المستخدم رقمًا، يصل إلى البرنامج نصًّا. فإذا حاولنا الحساب به ظهر خطأ:

main.py
age = input("كم عمرك؟ ")print(age + 1)
Shell×
>>> %Run main.py
كم عمرك؟ 19
Traceback (most recent call last):
File "main.py", line 2, in <module>
print(age + 1)
TypeError: can only concatenate str (not "int") to str
>>>

٣الحل: حوّل ما قرأته

نضع input داخل int() للأعداد الصحيحة، أو داخل float() للأعداد العشرية:

main.py
age = int(input("كم عمرك؟ "))print("بعد سنة سيكون عمرك", age + 1)
Shell×
>>> %Run main.py
كم عمرك؟ 19
بعد سنة سيكون عمرك 20
>>>
main.py
price = float(input("السعر: "))print("السعر مع الضريبة:", price * 1.15)
Shell×
>>> %Run main.py
السعر: 100
السعر مع الضريبة: 114.99999999999999
>>>

٤برنامج كامل

تذكّر الدرس الأول: مدخلات، ثم معالجة، ثم مخرجات. هذا برنامج يجمع عددين يكتبهما المستخدم:

main.py
# المدخلاتa = int(input("العدد الأول: "))b = int(input("العدد الثاني: "))# المعالجةtotal = a + b# المخرجاتprint("المجموع:", total)
Shell×
>>> %Run main.py
العدد الأول: 8
العدد الثاني: 5
المجموع: 13
>>>
📎 للاستزادة (اختياري): لماذا نضع مسافة في آخر السؤال؟

المسافة في "ما اسمك؟ " تفصل السؤال عن إجابة المستخدم، فلا تلتصق الكلمات.

توقّع وتحقّق

ماذا يفعل input("اسمك: ")؟

input يسأل وينتظر.

ما نوع ما يعيده input دائمًا؟

يصل نصًّا دائمًا، حتى لو كان رقمًا.

أي سطر يقرأ عددًا صحيحًا من المستخدم بشكل صحيح؟

input داخل int.

المستخدم كتب 4 ثم 6 لبرنامج المجموع. ماذا يطبع؟

حوّلنا القيمتين بـ int فجُمعتا.

الخلاصة

تحدٍّ برمجي: مساحة من المستخدم

سهل

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

المطلوب:
  • اقرأ الطول بـ int(input(...)).
  • اقرأ العرض بالطريقة نفسها.
  • اطبع: المساحة: ثم الناتج.

ابدأ من هذا الكود، واضغط ▶ شغّل هنا لتكتب حلّك وتجرّبه مباشرة:

main.py
length = int(input("الطول: "))
المطلوب×
الطول: 5
العرض: 3
المساحة: 15
💡 تلميح 1
اقرأ width مثل length تمامًا.
💡 تلميح 2
المساحة = length * width.

حاول بنفسك أولًا؛ للمسألة أكثر من حلّ صحيح.

main.py
length = int(input("الطول: "))width = int(input("العرض: "))print("المساحة:", length * width)
انتقل إلى تقييم الدرساختيار من متعدد، وصح وخطأ، وأكمل الفراغ، وتتبّع الناتج.ابدأ التقييم ←