تعلم لغة Python الفصل 5 : if الشرطية الجزء 2 والأخير

sparrow
0

 



الفصل : 5

الجزء : 2

العنوان : if الشرطية





استخدام جمل if مع القوائم


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


التحقق من العناصر الخاصة


بدأ هذا الفصل بمثال بسيط أظهر كيفية التعامل مع قيمة خاصة مثل 'bmw'، والتي تحتاج إلى طباعتها بتنسيق مختلف عن القيم الأخرى في القائمة. الآن بعد أن أصبحت لديك فهم أساسي للاختبارات الشرطية وجمل if، دعونا نلقي نظرة أقرب على كيفية مراقبة القيم الخاصة في قائمة والتعامل مع هذه القيم بشكل مناسب.


دعونا نستمر في مثال البيتزا. يعرض محل البيتزا رسالة كلما أُضيف طبقة إلى البيتزا أثناء صنعها. يمكن كتابة الكود لهذا الإجراء بشكل فعال عن طريق إنشاء قائمة بالطبقات التي طلبها العميل واستخدام حلقة loop للإعلان عن كل طبقة أثناء إضافتها إلى البيتزا:



المخرجات واضحة لأن هذا الكود هو فقط حلقة for بسيطة:



ولكن ماذا لو نفدت الفلفل الأخضر في محل البيتزا؟ يمكن أن تتعامل جملة if داخل حلقة for مع هذا الوضع بشكل مناسب:


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


تظهر المخرجات أن كل طبقة مطلوبة تتم معالجتها بشكل مناسب:



التحقق من أن القائمة ليست فارغة


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


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



هذه المرة نبدأ بقائمة فارغة من الطبقات المطلوبة. بدلًا من القفز مباشرة إلى حلقة for، نقوم بإجراء تحقق سريع أولاً. عندما يتم استخدام اسم قائمة في جملة if، تعود Python بقيمة True إذا كانت القائمة تحتوي على عنصر واحد على الأقل؛ والقائمة الفارغة تقيم إلى False. إذا مرت `requested_toppings` في الاختبار الشرطي، نقوم بتشغيل نفس حلقة for التي استخدمناها في المثال السابق. إذا فشل الاختبار الشرطي، نطبع رسالة تسأل العميل عما إذا كان يريد فعلاً بيتزا عادية بدون طبقات.


القائمة فارغة في هذه الحالة، لذلك تطلب المخرجات ما إذا كان المستخدم يريد حقًا بيتزا عادية:



إذا لم تكن القائمة فارغة، ستظهر المخرجات كل طبقة مطلوبة يتم إضافتها إلى البيتزا.


استخدام قوائم متعددة


سيطلب الناس أي شيء تقريبًا، خاصة عندما يتعلق الأمر بطبقات البيتزا. ماذا لو أراد العميل فعلاً البطاطس المقلية على البيتزا؟ يمكنك استخدام القوائم وجمل if للتأكد من أن المدخلات منطقية قبل التصرف بناءً عليها.


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



أولاً، نحدد قائمة بالطبقات المتاحة في هذا المحل. لاحظ أن هذه القائمة يمكن أن تكون `tuple` إذا كان المحل يحتوي على مجموعة ثابتة من الطبقات. بعد ذلك، نُنشئ قائمة بالطبقات التي طلبها العميل. هناك طلب غير عادي لطبقة في هذا المثال: 'french fries'. بعد ذلك، نكرر عبر قائمة الطبقات المطلوبة. داخل الحلقة، نتحقق مما إذا كانت كل طبقة مطلوبة موجودة فعلاً في قائمة الطبقات المتاحة. إذا كان كذلك، نضيف تلك الطبقة إلى البيتزا. إذا لم تكن الطبقة المطلوبة في قائمة الطبقات المتاحة، ستعمل كتلة else. تطبع كتلة else رسالة تخبر المستخدم بالعناصر التي ليست متاحة.


ينتج عن هذا الكود مخرجات نظيفة ومعلوماتية:



في بضع سطور فقط من الكود، تمكنّا من إدارة وضع حقيقي بفعالية!


جربها بنفسك


تمرين 5-8. Hello Admin:

أنشئ قائمة بخمس أسماء مستخدمين أو أكثر، بما في ذلك الاسم 'admin'. تخيل أنك تكتب كودًا سيطبع ترحيبًا لكل مستخدم بعد تسجيل دخوله إلى موقع الويب. كرر عبر القائمة واطبع ترحيبًا لكل مستخدم.

إذا كان اسم المستخدم هو 'admin'، اطبع ترحيبًا خاصًا، مثل:

"Hello admin, would you like to see a status report?".

خلاف ذلك، اطبع ترحيبًا عامًا، مثل: "Hello Jaden, thank you for logging in again."


تمرين 5-9. No Users:

أضف اختبارًا إلى `hello_admin.py` للتأكد من أن قائمة المستخدمين ليست فارغة.

إذا كانت القائمة فارغة، اطبع الرسالة: "We need to find some users!".

أزل جميع أسماء المستخدمين من قائمتك، وتأكد من طباعة الرسالة الصحيحة.


تمرين 5-10. Checking Usernames:

قم بما يلي لإنشاء برنامج يحاكي كيفية ضمان المواقع الإلكترونية أن يكون لكل شخص اسم مستخدم فريد.

أنشئ قائمة بخمس أسماء مستخدمين أو أكثر تسمى `current_users`.

أنشئ قائمة أخرى بخمس أسماء مستخدمين تسمى `new_users`. تأكد من أن واحدًا أو اثنين من أسماء المستخدمين الجديدة موجودة أيضًا في قائمة `current_users`.

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

تأكد من أن المقارنة غير حساسة لحالة الأحرف. إذا تم استخدام 'John'، لا يجب قبول 'JOHN'. (للقيام بذلك، ستحتاج إلى إنشاء نسخة من `current_users` تحتوي على النسخ الصغيرة لجميع المستخدمين الحاليين).


تمرين 5-11. Ordinal Numbers:

تشير الأرقام الترتيبية إلى موضعها في قائمة، مثل 1st أو 2nd. تنتهي معظم الأرقام الترتيبية بـ th، باستثناء 1 و2 و3.

احفظ الأرقام من 1 إلى 9 في قائمة.

كرر عبر القائمة.


استخدم سلسلة if-elif-else داخل الحلقة لطباعة النهاية الترتيبية المناسبة لكل رقم. يجب أن تكون مخرجاتك: "1st 2nd 3rd 4th 5th 6th 7th 8th 9th"، ويجب أن تكون كل نتيجة على سطر منفصل.


 


تنسيق جمل if الخاصة بك


في كل مثال في هذا الفصل، رأيت عادات جيدة للتنسيق. التوصية الوحيدة التي يقدمها PEP 8 لتنسيق الاختبارات الشرطية هي استخدام مساحة واحدة حول عوامل المقارنة، مثل ==، >=، و <=. على سبيل المثال:


أفضل من:


مثل هذا التباعد لا يؤثر على كيفية تفسير Python للكود الخاص بك؛ إنه فقط يجعل كودك أسهل للقراءة لك وللآخرين.


جربها بنفسك


تمرين 5-12. تنسيق جمل if:

راجع البرامج التي كتبتها في هذا الفصل، وتأكد من أنك نسقت اختباراتك الشرطية بشكل مناسب.


تمرين 5-13. أفكارك:

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

 


ملخص


في هذا الفصل، تعلمت كيفية كتابة الاختبارات الشرطية، والتي دائمًا تقيم إلى True أو False. تعلمت كتابة جمل if البسيطة، سلاسل if-else، وسلاسل if-elif-else. بدأت في استخدام هذه الهياكل لتحديد الظروف الخاصة التي تحتاج إلى اختبار ومعرفة متى تم استيفاء تلك الظروف في برامجك. تعلمت كيفية التعامل مع عناصر معينة في قائمة بشكل مختلف عن جميع العناصر الأخرى مع الاستمرار في استخدام كفاءة حلقة for. أيضًا، راجعت توصيات نمط Python للتأكد من أن برامجك المتزايدة التعقيد لا تزال سهلة القراءة والفهم نسبيًا.


في الفصل 6، ستتعلم عن القواميس في Python. القاموس مشابه للقائمة، لكنه يتيح لك ربط قطع المعلومات. ستتعلم كيفية بناء القواميس، التكرار من خلالها، واستخدامها بالتزامن مع القوائم وجمل if. ستتيح لك معرفة القواميس نمذجة مجموعة أوسع من المواقف الحقيقية.



النهاية


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


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


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


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


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

هنا


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


Tags

إرسال تعليق

0تعليقات

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

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

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