استقبال مدخلات المستخدم
| الدالة أو المفهوم البرمجي | آلية العمل والخصائص البرمجية | مثال الشيفرة والنتيجة المتوقعة |
|---|---|---|
| الدالة input | توقف عمل البرنامج مؤقتاً بانتظار إدخال من المستخدم عبر لوحة المفاتيح والضغط على زر إنتر | كود input يعيد البيانات المدخلة فوراً |
| نوع المخرج الافتراضي str | تقوم الدالة بمعاملة أي مدخلات حتى لو كانت أرقاماً كسلسلة نصية بشكل إجباري | كود input يعيد نص رقبي مثل 20 بين علامتي تنصيص |
| رسالة التوجيه Prompt | نص اختياري يُكتب داخل القوسين ليظهر للمستخدم كإرشادات تخبره بنوع البيانات المطلوبة | كود input لرسالة أدخل اسمك |
| التحويل الرقمي الصريح | دمج دالة التحويل int أو float مع دالة الإدخال لاستقبال قيم عددية صالحة للحساب | كود int المدمج بـ input لاستقبال العمر كعدد صحيح |
| التحقق من المدخلات Validation | فحص سلامة البيانات المدخلة قبل معالجتها لمنع توقف السيرفر وحدوث أخطاء برمجية مفاجئة | استخدام دالة isdigit يفحص هل النص يتكون من أرقام فقط |
استقبال مدخلات المستخدم (User Input)
1. مفهوم دالة الإدخال input()
تُعد دالة input() الأداة القياسية المدمجة في لغة بايثون للتفاعل مع المستخدم عبر واجهة سطر الأوامر (CLI). عند وصول معالج بايثون إلى هذه الدالة، يتم إيقاف تنفيذ أسطر البرنامج بالكامل (Blocking State)، وينتظر النظام قيام المستخدم بكتابة البيانات عبر لوحة المفاتيح والضغط على زر الإدخال Enter؛ عندها تلتقط الدالة النص المدخل وتُسنده إلى المتغير المحدد.
2. طبيعة البيانات المسترجعة وعمليات القصر (Casting) من أهم القواعد البرمجية الصارمة في نواتج بايثون أن دالة input() تُرجع دائماً سلسلة نصية (str)، بغض النظر عن طبيعة المحتوى الذي كتبه المستخدم (سواء كتب حروفاً، أرقاماً، أو رموزاً منطقية).
إذا تم التعامل مع المدخلات الرقمية كأرقام مباشرة دون تحويل صريح، سيؤدي ذلك إما إلى حدوث أخطاء منطقية (مثل دمج النصوص بدلاً من جمع الأرقام رياضياً) أو توقف البرنامج كلياً بظهور خطأ من نوع TypeError.
3. التحقق من صحة وسلامة المدخلات (Data Validation) في التطبيقات الاحترافية، لا يمكن الوثوق بالبيانات التي يدخلها المستخدم بشكل أعمى؛ فإذا طلبت الدالة إدخال العمر كـ int وقام المستخدم بكتابة حروف نصية مثل "خمسة"، سيتوقف البرنامج فوراً مسبباً خطأ فادحاً من نوع ValueError.
لتفادي هذا التشوه البرمجي، يجب فحص البيانات (Validation) باستخدام دوال التحقق النصية المدمجة قبل إجراء أي عملية تحويل صريحة في الذاكرة.
| 1 | # الصيغة الأساسية |
| 2 | user_input = input("رسالة التوجيه: ") |
| 3 | |
| 4 | # مثال عملي |
| 5 | name = input("ما اسمك؟ ") |
| 6 | age = int(input("كم عمرك؟ ")) |
| 7 | print(f"مرحباً {name}، عمرك {age} سنة!") |
مثال 1: مثال بسيط للإدخال
| 1 | name = input("أدخل اسمك: ") |
| 2 | print(f"أهلاً {name}! 👋") |
| 3 | |
| 4 | # إدخال رقم |
| 5 | num = int(input("أدخل رقماً: ")) |
| 6 | print(f"مربع الرقم: {num ** 2}") |
مثال 2: آلة حاسبة بسيطة
| 1 | print("=== آلة حاسبة بسيطة ===") |
| 2 | a = float(input("الرقم الأول: ")) |
| 3 | op = input("العملية (+, -, *, /): ") |
| 4 | b = float(input("الرقم الثاني: ")) |
| 5 | |
| 6 | if op == "+": |
| 7 | print(f"النتيجة: {a + b}") |
| 8 | elif op == "-": |
| 9 | print(f"النتيجة: {a - b}") |
| 10 | elif op == "*": |
| 11 | print(f"النتيجة: {a * b}") |
| 12 | elif op == "/" and b != 0: |
| 13 | print(f"النتيجة: {a / b}") |
| 14 | else: |
| 15 | print("عملية غير صالحة!") |