مفهوم المُدخلات input في بايثون
المدخلات input في بايثون, نعلم أن البرمجة عبارة عن مُدخلات Input و مُخرجات output و بينهما وحدات المنطق و البرمجيات.
في الأمثلة التي كنا نكتبها سابقاً, كنا نكتب الكود ثم نقوم بتشغيله فيتم تنفيذه كاملاً دفعة واحدة, و عند إنتهائه يعرض لنا عبارة Done Execution.
ستتعلم في هذا الدرس كيف تجعل المستخدم يتفاعل مع البرنامج عندما يكون شغالاً. أي ستجعل البرنامج يطلب من المستخدم إدخال معلومات (مثل إسمه, عمره إلخ..), بعدها ستجعله ينتظره ليدخل المعلومات من لوحة المفاتيح (Keyboard).
سنتعلم اليوم كيفية إستقبال Input عن طريق لوحة المفاتيح keyboard بإستخدام الدالة input أي كيف تنشئ برنامح يتفاعل مع المستخدم و من خلالها نجعل المُستخدم قادراً على إدخال البيانات في البرنامج أثناء عمل البرنامج و بعد إدخالها سيقوم البرنامج بمعالجتها و فعل شيء معين بها. و عند إستدعاء دالة الإدخال input يقوم المفسر compiler هذه اللغة بإنتظار المُستخدم لإدخال القيم المُناسبة التي يريد إدخالها و بعد الإنتهاء من الإدخال نضغط على مفتاح Enter و سيرَّجع. كل ما كتبته المستخدم لنص في المكان الذي إستدعى الداله منه. أما إذا تريد ما ضمن الداله يكون عدد صحيح يجب ضبط الدالة تُرَجِع أي شيئ يدخل لها و تعتبره عدد.
الهدف من هذا الدرس أن تتعلم طريقة إنشاء برامج تناسب جميع المستخدمين. من الآن و صاعداً ستجهز برامجك للمستخدم و تنتظر منه إدخال معلوماته الخاصة, ثم تجعل البرنامج يتعامل مع المعلومات التي قام المستخدم بإدخاله.
كيف تتعامل مع البيانات التي سوف دخلها المستخدم
إذا أردت أن يقوم المستخدم بإدخال المعلومات إلى البرنامج فعليك تجهيز مكان في الذاكرة (أي تعريف متغيرات) من أجل تخزين المعلومات التي سيدخلها المستخدم قبل أن تجعل البرنامج يطلب منه إدخال المعلومات. دائماً عندما تريد من المستخدم أن يدخل أي معلومة, إجعل البرنامج يطلب منه أن يدخلها ثم خزنها في متغير.
الدالة input() في بايثون
تستخدم من أجل جعل المستخدم قادراً على إدخال بيانات إلى البرنامج أثناء عمل هذا البرنامج و نستخدم في هذا الأمر دالة جاهزة إسمها input() و في كل مرة نقوم بها بإستدعاء الدالة input() يقوم المفسّر الخاص في لغة بايثون بإنتظار المستخدم لإدخال ما يريد من لوحة المفاتيح ( Keyboard ) و بعد الإنتهاء من الإدخال و النقر على الزر Enter سيتم إرجاع الشيء الذي قام بإدخاله.
أمثلة على إدخال البيانات من المستخدم
>>>name = input ("your name is ?")
انشأنا متغير name و إستدعينا به الدالة input, عند الضغط على زر Enter سوف يكتب لي البرنامج السؤال و نقوم بإدخال ما طلبه وهو الإسم. بعدما سألنا السؤال و أراد إدخال طلب مُعين له و هو إسم كتبتهُ. و ضغطت على زر Enter يكون قد أدخلت كلمة للبرنامج و لعرض ما تم إدخاله نكتب print المتغير كما يلي
>>>name = input ("your name is ?") your name is ?ahmed >>>print(name) ahmed
هذا بالنسبة للنصوص, أما لضبط الداله لإستقبال اعداد كما بهذا المثال
>>>age = int (input("your age is ?")) age is ?26 >>>age 26
كما لاحظنا ضبطنا الدالة لإستقبال الأرقام فقط عن طريق int قبل دالة. الإدخال, في حال كتبنا أحرف سوف يُعطينا خطأ لأنها مضبوطه لإستقبال أرقام فقط.
مثال
سوف نقوم بضبط الدالة على إستقبال أرقام و نقوم بعملية حسابية وهي جمع عددين a و b يقوم البرنامج بطلبهم.
>>> a = int(input("Enter a Number: ")) Enter a Number: 23 >>> b = int(input("Enter b Number: ")) Enter b Number: 28 >>> print('a + b = ', a + b) a + b = 51
نلاحظ أننا وضعنا الدالة input() في داخل الدالة int() لأجل أن يتم تحويل الرقم الذي سوف يدخله المستخدم إلى عدد صحيح قبل تخزينه في المتغير, لو لم نفعل هذا الأمر لتم إعتبار الأرقام التي قام بإدخالها المستخدم عبارة عن نصوص و سوف يسبب خطأ منطقي.
لنأخذ مثال بكتابة سكربت بسيط,سأكتبه في برنامج pycharm.
name = input ("your name is?") age = int (input("your age is?")) print("your name is {0} and your age is {1}".format (name,age))
في هذا السكربت إستخدمنا دالة format تكلمنا عنها سابقاً.
your name is ?ahmed your age is ?26 your named is ahmed and your age is 26
نُلاحظ عند تشغيل البرنامج سألني أول سؤال و كتبت لهُ إسم ahmed و بعدها ضغطت على إنتر. سألني السؤال الثاني مباشرتاً و كتبت لهُ العمر 26 الذي طلبه مني. و عندما ضغطت Enter مرة أخرى اظهَرَ لنا سطر البرنامج كاملاً مليئ بالمُدخلات الذي طلبها مني.