تعلم لغة Python الفصل 7 : ال USER INPUT و WHILE LOOPS الجزء 1

sparrow
0

 



الفصل : 7

الجزء : 1

العنوان : ال USER INPUT و WHILE LOOPS





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


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


ستتعلم أيضًا كيفية الحفاظ على تشغيل البرامج طالما أراد المستخدمون ذلك، بحيث يمكنهم إدخال أكبر قدر من المعلومات التي يحتاجونها؛ ثم يمكن لبرنامجك العمل بتلك المعلومات. ستستخدم حلقة while في Python للحفاظ على تشغيل البرامج طالما بقيت بعض الشروط صحيحة.


بقدرتك على العمل مع مدخلات المستخدم والتحكم في مدة تشغيل برامجك، ستكون قادرًا على كتابة برامج تفاعلية بالكامل.



كيفية عمل دالة input()


دالة input() توقف برنامجك وتنتظر من المستخدم إدخال بعض النصوص. بمجرد أن يستلم Python مدخلات المستخدم، يعين تلك المدخلات إلى متغير لجعلها ملائمة لك للعمل بها.


على سبيل المثال، البرنامج التالي يطلب من المستخدم إدخال بعض النصوص، ثم يعرض تلك الرسالة مرة أخرى للمستخدم:



دالة input() تأخذ وسيطًا واحدًا: النص المطلوب الذي نريد عرضه للمستخدم، حتى يعرف نوع المعلومات التي يجب إدخالها. في هذا المثال، عندما يقوم Python بتشغيل السطر الأول، يرى المستخدم النص المطلوب "Tell me something, and I will repeat it back to you:". ينتظر البرنامج بينما يدخل المستخدم استجابته ويواصل بعد أن يضغط المستخدم على ENTER. يتم تعيين الاستجابة إلى المتغير message، ثم تقوم print(message) بعرض الإدخال مرة أخرى للمستخدم:



ملاحظة:

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

 


كتابة مطالبات واضحة (Writing Clear Prompts)


في كل مرة تستخدم فيها دالة input()، يجب أن تتضمن مطالبة واضحة وسهلة المتابعة تخبر المستخدم بالضبط بنوع المعلومات التي تبحث عنها. أي بيان يخبر المستخدم بما يجب إدخاله يجب أن يعمل. على سبيل المثال:


أضف مسافة في نهاية مطالباتك (بعد النقطتين في المثال السابق) لفصل النص المطلوب عن استجابة المستخدم ولجعل الأمر واضحًا للمستخدم مكان إدخال نصه. على سبيل المثال:


أحيانًا قد ترغب في كتابة مطالبة أطول من سطر واحد. على سبيل المثال، قد ترغب في إخبار المستخدم لماذا تطلب إدخالًا معينًا. يمكنك تعيين مطالبتك إلى متغير وتمرير ذلك المتغير إلى دالة input(). هذا يسمح لك ببناء المطالبة عبر عدة أسطر، ثم كتابة جملة input() نظيفة.


هذا المثال يوضح طريقة لبناء سلسلة نصية متعددة الأسطر. في السطر الأول، تعين الجزء الأول من الرسالة إلى المتغير prompt. في السطر الثاني، يستخدم المشغل += لأخذ السلسلة النصية التي تم تعيينها إلى prompt ويضيف السلسلة الجديدة إلى النهاية.


الآن تمتد المطالبة عبر سطرين، مرة أخرى مع مسافة بعد علامة الاستفهام للوضوح:


استخدام int() لقبول المدخلات الرقمية


عند استخدام دالة input()، يفسر Python كل ما يدخله المستخدم كسلسلة نصية. فكر في جلسة المفسر التالية، التي تطلب من المستخدم إدخال عمره:



يدخل المستخدم الرقم 21، لكن عندما نسأل Python عن قيمة age، فإنه يعيد '21'، التمثيل النصي للقيمة العددية المدخلة. نعلم أن Python فسر الإدخال كـ string لأن الرقم الآن محاط بعلامات اقتباس. إذا كنت تريد فقط طباعة الإدخال، فهذا يعمل جيدًا. لكن إذا حاولت استخدام الإدخال كرقم، فستحصل على خطأ:


عندما تحاول استخدام الإدخال لإجراء مقارنة رقمية، يقوم Python بإنتاج خطأ لأنه لا يمكنه مقارنة سلسلة نصية بعدد: السلسلة النصية '21' المعينة إلى age لا يمكن مقارنتها بالقيمة العددية 18.


يمكننا حل هذه المشكلة باستخدام دالة int()، التي تحول السلسلة النصية إلى قيمة عددية. هذا يسمح بإجراء المقارنة بنجاح:


في هذا المثال، عندما ندخل 21 في النص المطلوب، يفسر Python الرقم كـ string، لكن يتم تحويل القيمة بعد ذلك إلى تمثيل عددي بواسطة int(). الآن يمكن لـ Python تشغيل الاختبار الشرطي: يقارن age (الذي يمثل الآن القيمة العددية 21) و 18 لمعرفة ما إذا كان age أكبر من أو يساوي 18. هذا الاختبار يقيم إلى True.


كيف تستخدم دالة int() في برنامج فعلي؟ فكر في برنامج يحدد ما إذا كان الناس طويلين بما يكفي لركوب لعبة خطيرة مثلا :



يمكن للبرنامج مقارنة height بـ 48 لأن height = int(height) يحول قيمة الإدخال إلى تمثيل عددي قبل إجراء المقارنة. إذا كان الرقم المدخل أكبر من أو يساوي 48، نقول للمستخدم أنه طويل بما يكفي:


How tall are you, in inches? 71

You're tall enough to ride!


عندما تستخدم مدخلات رقمية لإجراء عمليات حسابية ومقارنات، تأكد من تحويل قيمة الإدخال إلى تمثيل عددي أولاً.


ال Modulo Operator


أداة مفيدة للعمل مع المعلومات الرقمية هي مشغل (تاتي باسم Operator) وهي ال modulo (%)، الذي يقسم عددًا على عدد آخر ويعيد الباقي:


مشغل modulo لا يخبرك بعدد المرات التي يتناسب فيها عدد واحد مع آخر؛ بل يخبرك فقط بما هو الباقي.


عندما يكون عدد ما قابلًا للقسمة على عدد آخر، يكون الباقي 0، لذلك مشغل modulo دائمًا يعيد 0. يمكنك استخدام هذه الحقيقة لتحديد ما إذا كان عدد ما زوجيًا أم فرديًا:


الأعداد الزوجية دائمًا قابلة للقسمة على اثنين، لذلك إذا كان modulo لعدد ما واثنين هو صفر (هنا، if number % 2 == 0) فالعدد زوجي. بخلاف ذلك، يكون فرديًا.


جربها بنفسك


تمرين **سيارة للإيجار**: اكتب برنامجًا يسأل المستخدم عن نوع السيارة التي يرغب في استئجارها. اطبع رسالة عن تلك السيارة، مثل "Let me see if I can find you a Subaru."


تمرين**حجز مطعم**: اكتب برنامجًا يسأل المستخدم عن عدد الأشخاص في مجموعتهم لتناول العشاء. إذا كانت الإجابة أكثر من ثمانية، اطبع رسالة تقول إن عليهم الانتظار للحصول على طاولة. خلاف ذلك، أبلغهم أن طاولتهم جاهزة.


تمرين**مضاعفات العشرة**: اسأل المستخدم عن عدد، ثم أبلغ ما إذا كان العدد مضاعفًا للعشرة أم لا.


النهاية


نكون هنا انتهينا من الجزء 1 من الفصل 7 من منهج تعلم Python من كتاب python crash course بالعربية 


واذا واجهتك اي مشكلة في الفهم او ما شابه , يمكنك على الفور الذهاب الى المجتمع الخاص بنا في Telegram للمناقشة والتواصل معنا من هنا  


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


ويمكنك الأنضمام الى المجتمع Hidden Lock بالكامل مع جميع قنواته للأستفادة في اخر الأخبار في عالم التقنية وايضا الكتب بالمجان والكورسات والمقالات من خلال الرابط التالي لمجموعة القنوات من     هنا 


يمكنك ايضا متابعتنا في منصات X او Twitter سابقا , لمشاهدة الاخبار والمقالات السريعة والمهمة من  

هنا


وفقط كان معكم sparrow مقدم هذه الشهادة من فريق Hidden Lock 


Tags

إرسال تعليق

0تعليقات

إرسال تعليق (0)

#buttons=(موافق!) #days=(20)

يستخدم موقعنا ملفات تعريف الارتباط لتحسين تجربتك. تاكد الان
Ok, Go it!