تعلم لغة Python الفصل 7 : ال USER INPUT و WHILE LOOPS الجزء 3 والأخير

sparrow
0

 



الفصل : 7

الجزء : 3

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






استخدام حلقة while مع القوائم والقواميس


حتى الآن، عملنا مع قطعة واحدة من معلومات المستخدم في كل مرة. استلمنا مدخلات المستخدم ثم قمنا بطباعة المدخلات أو الرد عليها. في المرة التالية عبر حلقة while، كنا نستلم قيمة إدخال أخرى ونرد عليها. ولكن لتتبع العديد من المستخدمين والمعلومات، سنحتاج إلى استخدام القوائم والقواميس مع حلقات while.


حلقة for فعالة للتكرار عبر قائمة، ولكن لا يجب عليك تعديل قائمة داخل حلقة for لأن Python ستواجه صعوبة في تتبع العناصر في القائمة. لتعديل قائمة أثناء العمل من خلالها، استخدم حلقة while. استخدام حلقات while مع القوائم والقواميس يسمح لك بجمع وتخزين وتنظيم الكثير من المدخلات لفحصها والإبلاغ عنها لاحقًا.


نقل العناصر من قائمة إلى أخرى


اعتبر قائمة المستخدمين المسجلين حديثًا ولكن غير المؤكدين في موقع ويب. بعد أن نتحقق من هؤلاء المستخدمين، كيف يمكننا نقلهم إلى قائمة منفصلة للمستخدمين المؤكدين؟ إحدى الطرق هي استخدام حلقة while لسحب المستخدمين من قائمة المستخدمين غير المؤكدين أثناء التحقق منهم ثم إضافتهم إلى قائمة منفصلة للمستخدمين المؤكدين. هذا هو ما قد يبدو عليه الكود:


بدأنا بقائمة المستخدمين غير المؤكدين (Alice، Brian، وCandace) وقائمة فارغة لحمل المستخدمين المؤكدين. تستمر حلقة while في العمل طالما أن قائمة المستخدمين غير المؤكدين غير فارغة. داخل هذه الحلقة، تقوم دالة pop() بإزالة المستخدمين غير المؤكدين واحدًا تلو الآخر من نهاية قائمة المستخدمين غير المؤكدين. لأن Candace هي الأخيرة في قائمة المستخدمين غير المؤكدين، فإن اسمها سيكون الأول الذي يتم إزالته، يتم تعيينه إلى current_user، ويضاف إلى قائمة المستخدمين المؤكدين. التالي هو Brian، ثم Alice.


نقوم بمحاكاة التحقق من كل مستخدم عن طريق طباعة رسالة تحقق ثم إضافتهم إلى قائمة المستخدمين المؤكدين. مع تقليص قائمة المستخدمين غير المؤكدين، تزداد قائمة المستخدمين المؤكدين. عندما تصبح قائمة المستخدمين غير المؤكدين فارغة، تتوقف الحلقة ويتم طباعة قائمة المستخدمين المؤكدين:


إزالة جميع مثيلات القيم المحددة من قائمة



معلومة : عندما نتحدث عن "مثيلات القيم" او ما تسمى Instances في القوائم أو في البرمجة بشكل عام، فإننا نعني تكرار وجود نفس العنصر أو القيمة في مجموعة من البيانات. على سبيل المثال، إذا كانت لدينا قائمة تحتوي على القيم ['cat', 'dog', 'cat', 'rabbit']، فإن كلمة instances تشير إلى عدد مرات تكرار القيمة 'cat' في هذه القائمة، وهي في هذه الحالة مرتين.


في الفصل الثالث، استخدمنا `remove()` لإزالة قيمة محددة من قائمة. عملت دالة `remove()` لأن القيمة التي كنا نهتم بها ظهرت مرة واحدة فقط في القائمة. ولكن ماذا لو أردت إزالة جميع مثيلات قيمة من قائمة؟


افترض أن لديك قائمة بالحيوانات الأليفة تحتوي على القيمة 'cat' مكررة عدة مرات. لإزالة جميع مثيلات تلك القيمة، يمكنك تشغيل حلقة while حتى لا يعود هناك 'cat' في القائمة، كما هو موضح هنا:


بدأنا بقائمة تحتوي على عدة مثيلات من 'cat'. بعد طباعة القائمة، يدخل Python حلقة while لأنه يجد القيمة 'cat' في القائمة مرة واحدة على الأقل. بمجرد دخول الحلقة، يزيل Python أول مثيل لـ 'cat'، يعود إلى سطر while، ثم يدخل الحلقة مرة أخرى عندما يجد أن 'cat' لا يزال في القائمة. يزيل كل مثيل لـ 'cat' حتى لا تعود القيمة موجودة في القائمة، وعندها يخرج Python من الحلقة ويطبع القائمة مرة أخرى:


ملء قاموس بمدخلات المستخدم


يمكنك طلب عدد من المدخلات حسب الحاجة في كل مرة عبر حلقة while. لنقم بعمل برنامج استطلاع حيث يطلب كل مرة عبر الحلقة اسم المشارك ورده. سنقوم بتخزين البيانات التي نجمعها في قاموس، لأننا نريد ربط كل رد بمستخدم معين:



يبدأ البرنامج بتعريف قاموس فارغ (responses) وتعيين علم (polling_active) للإشارة إلى أن الاستطلاع نشط. طالما أن polling_active هي True، سيشغل Python الكود في حلقة while. داخل الحلقة، يُطلب من المستخدم إدخال اسمه وجبل يود تسلقه يومًا ما. يتم تخزين تلك المعلومات في قاموس responses، ويُطلب من المستخدم ما إذا كان يرغب في استمرار الاستطلاع. إذا أدخلوا yes، يدخل البرنامج حلقة while مرة أخرى. إذا أدخلوا no، يتم تعيين العلم polling_active إلى False، تتوقف حلقة while عن العمل، ويتم عرض الكتلة النهائية من الكود نتائج الاستطلاع.


إذا شغلت هذا البرنامج وأدخلت ردودًا نموذجية، يجب أن ترى مخرجات مثل هذه:



جرب بنفسك


تمرين 7-8. Deli: قم بإنشاء قائمة تسمى sandwich_orders واملأها بأسماء مختلف السندويشات. ثم قم بإنشاء قائمة فارغة تسمى finished_sandwiches. كرر عبر قائمة طلبات السندويشات واطبع رسالة لكل طلب، مثل "I made your tuna sandwich". أثناء تحضير كل سندويش، انقله إلى قائمة السندويشات المنتهية. بعد أن يتم تحضير جميع السندويشات، اطبع رسالة تسرد كل سندويش تم تحضيره.


تمرين 7-9. No Pastrami: باستخدام قائمة sandwich_orders من تمرين 7-8، تأكد من أن سندويش 'pastrami' يظهر في القائمة ثلاث مرات على الأقل. أضف كودًا في بداية البرنامج لطباعة رسالة تقول أن المتجر قد نفد من 'pastrami'، ثم استخدم حلقة while لإزالة كل مثيلات 'pastrami' من قائمة sandwich_orders. تأكد من عدم وجود سندويشات 'pastrami' في قائمة finished_sandwiches.


تمرين 7-10. Dream Vacation: اكتب برنامجًا يقوم باستطلاع المستخدمين حول عطلتهم الحلمية. اكتب موجهًا مشابهًا لـ "If you could visit one place in the world, where would you go?" تضمين كتلة من الكود تطبع نتائج الاستطلاع.


 


الملخص

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


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



النهاية


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


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


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


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


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

هنا


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


Tags

إرسال تعليق

0تعليقات

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

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

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