عبارة if الشرطية في Python. النحو ، كتل else / elif ، أمثلة

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

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

أنواع البيانات الرقابية

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

هناك أيضًا حلقات وعبارات تتحكم في عملية تنفيذه. سنتحدث اليوم فقط عن العامل الشرطي والسلاسل التي يمكنه المشاركة فيها.

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

  1. مساواة المتغير بقيمة معينة.
  2. القيام بعمل معين.
  3. حالة التطبيق (مطوي أم لا).

يمكن أن يكون الطيف أكبر من ذلك بكثير. تأتي العبارات الشرطية في عدة أنواع:

  1. بفرع واحد. بمعنى ، يتم إجراء فحص واحد ، ونتيجة لذلك يتم تنفيذ إجراءات معينة.
  2. مع فرعين أو أكثر. إذا كان المعيار 1 صحيحًا ، فتحقق من المعيار 2. إذا كان صحيحًا ، فحدد 3. وهكذا ، قم بإجراء العديد من عمليات التحقق كما هو مطلوب.
  3. بعدة شروط. كل شيء بسيط هنا. يتحقق المترجم من عدة شروط أو أحدها.

إذا البيان

يتشابه هيكل عبارة if في جميع اللغات. ومع ذلك ، في Python ، يختلف تركيبها إلى حد ما عن كل الصيغ الأخرى:

إذا الشرط:

    <входящее выражение 1>

    <входящее выражение 2>

<не входящее выражение>

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

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

انتباه! يجب أن تكون المسافة البادئة داخل كل أوامر كتلة if بنفس الحجم. يتم تحديد حدود الكتلة بواسطة المسافات البادئة. 

وفقًا لتوثيق اللغة ، فإن المسافة البادئة هي 4 مسافات. 

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

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

فيما يلي مقتطف الشفرة لمثال عن كيفية عمل هذا المشغل.

number = int (input ("أدخل رقمًا:"))

إذا كان الرقم> 10:

    طباعة ("الرقم أكبر من 10")

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

لكن إذا حددت الرقم 100 ، فسيفهم المترجم الفوري أنه أكثر من عشرة ، ويبلغ عنه.

انتباه! في حالتنا ، إذا كان الشرط خاطئًا ، يتوقف البرنامج ، لأنه لا توجد أوامر بعد التعليمات.

يوجد أمر واحد فقط في الكود أعلاه. لكن هناك الكثير منهم. الشرط الوحيد هو المسافة البادئة.

الآن دعنا نحلل تسلسل الأوامر هذا.

number = int (input ("اكتب رقمًا:"))

إذا كان الرقم> 10:

    طباعة ("السطر الأول")

    طباعة ("السطر الثاني")

    طباعة ("السطر الثالث")

print ("السطر الذي تم تنفيذه ، بغض النظر عن الرقم الذي تم إدخاله")

طباعة ("إنهاء التطبيق")

حاول تخمين ما سيكون الناتج إذا أدخلت القيم 2 ، 5 ، 10 ، 15 ، 50.

كما ترى ، إذا كان الرقم الذي أدخله المستخدم أكثر من عشرة ، فسيتم إخراج ثلاثة أسطر + سطر واحد بالنص "تشغيل في كل مرة ..." و "نهاية" ، وإذا كان الرقم أقل من عشرة ، فعندئذٍ واحد فقط ، مع نص مختلف. سيتم تنفيذ الأسطر 3,4,5،XNUMX،XNUMX فقط إذا كان هذا صحيحًا. ومع ذلك ، سيتم كتابة آخر سطرين بغض النظر عن الرقم الذي يحدده المستخدم.

إذا كنت تستخدم العبارات مباشرة في وحدة التحكم ، فستكون النتيجة مختلفة. يقوم المترجم الفوري بتشغيل الوضع متعدد الأسطر على الفور إذا ضغط على مفتاح الإدخال (Enter) بعد تحديد معيار التحقق.

لنفترض أننا كتبنا التسلسل التالي من الأوامر.

>>>

>>> ن = 100

>>> إذا كانت n> 10:

...

بعد ذلك ، سنرى أنه تم استبدال >>> بعلامة الحذف. هذا يعني أنه تم تمكين وضع الإدخال متعدد الأسطر. بكلمات بسيطة ، إذا ضغطت على Enter ، فسيتم نقلك إلى مدخلات المرحلة الثانية من التعليمات. 

ومن أجل الخروج من هذه الكتلة ، تحتاج إلى إضافة بناء آخر إلى الكتلة if.

>>>

>>> ن = 100

>>> إذا كانت n> 10:

... طباعة («nv 10»)

...

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

عامل التعبير إذا كان غير ذلك

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

إذا الشرط:

    # إذا كتلة

    البيان 1

    البيان 2

    وما إلى ذلك وهلم جرا

آخر:

    # آخر كتلة

    البيان 3

    البيان 4

    وهلم جرا:

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

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

هذا هو الكود الذي ينفذ هذه المهمة. لكن هناك خطأ واحد هنا. حاول تخمين أي واحد. 

radius = int (input (“Enter radius:“))

إذا كان نصف القطر> = 0:

    طباعة ("محيط =" ، 2 * 3.14 * نصف قطر)

    طباعة ("المساحة =" ، 3.14 * نصف القطر ** 2)

    آخر:

        طباعة ("الرجاء إدخال رقم موجب")

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

دعنا نعطي حالة استخدام أخرى (حيث سيكون كل شيء صحيحًا مع محاذاة المشغل) - عنصر تطبيق يتحقق من كلمة المرور.

كلمة المرور = الإدخال ("أدخل كلمة المرور:")

إذا كانت كلمة المرور == «sshh»:

    طباعة ("مرحبًا")

آخر:

    طباعة ("الوصول مرفوض")

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

عبارة-تعبير إذا- elif- آخر

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

إذا كانت الحالة_1:

    # إذا كتلة

    بيان

    بيان

    المزيد من البيان

الشرط elif_2:

    # أول كتلة elif

    بيان

    بيان

    المزيد من البيان

الشرط elif_3:

    # ثاني كتلة elif

    بيان

    بيان

    المزيد من البيان

...

آخر

    بيان

    بيان

    المزيد من البيان

يمكنك تحديد أي عدد من الشروط الإضافية.

جمل متداخلة

هناك طريقة أخرى لتنفيذ شروط متعددة وهي إدخال عمليات تحقق إضافية للشرط في كتلة if.

المُشغل if داخل كتلة شرط أخرى

gre_score = int (input (“أدخل حد الائتمان الحالي”))

per_grad = int (input (“أدخل التصنيف الائتماني:“))

إذا كان per_grad> 70:

    # الخارجي إذا كتلة

        إذا كانت gre_score> 150:

            # إذا كتلة الداخلية

    print ("تهانينا ، لقد تلقيت قرضًا")

آخر:

    print ("عذرًا ، أنت غير مؤهل للحصول على قرض")

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

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

الآن دعونا نعيد صياغة هذا البرنامج قليلاً.

gre_score = int (input (“أدخل الحد الحالي:“))

per_grad = int (input (“أدخل درجة الائتمان:"))

إذا كان per_grad> 70:

    إذا كانت gre_score> 150:

        print ("تهانينا ، لقد تلقيت قرضًا")

    آخر:

        طباعة ("حد الائتمان الخاص بك منخفض")

آخر:

    طباعة ("عذرًا ، لست مؤهلاً للحصول على رصيد")

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

بيان if-else داخل الشرط آخر

دعنا نصنع برنامجًا آخر يحدد درجة الطالب بناءً على درجات الاختبار.

النتيجة = int (الإدخال ("أدخل درجاتك:"))

إذا كانت النتيجة> = 90:

    طباعة ("رائع! درجتك أ")

آخر:

    إذا كانت النتيجة> = 80:

طباعة ("رائع! درجتك هي B")

    آخر:

إذا كانت النتيجة> = 70:

    طباعة ("جيد! درجتك هي C")

آخر:

    إذا كانت النتيجة> = 60:

print ("درجتك هي D. يجدر إعادة المادة.")

    آخر:

print ("لقد فشلت في الامتحان")

يتحقق التطبيق أولاً لمعرفة ما إذا كانت الدرجة أكبر من أو تساوي 90. إذا كانت الإجابة بنعم ، فإنه يقوم بإرجاع درجة A. إذا كان هذا الشرط خاطئًا ، فسيتم إجراء الفحوصات اللاحقة. نرى أن الخوارزمية هي نفسها تقريبًا للوهلة الأولى. لذا بدلاً من التحقق من الداخل آخر من الأفضل استخدام مجموعة إذا- elif- آخر.

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

اترك تعليق