• 0
Mr.B

استخدام غريب لـelse في بايثون

سؤال

السلام عليكم

أول مرة نظرت لقواعد بايثون على صفحة قواعد اللغة، لفت نظري وجود جملة else في مكان غريب في هذه الأسطر:

...if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]while_stmt: 'while' test ':' suite ['else' ':' suite]for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]try_stmt: ('try' ':' suite           ((except_clause ':' suite)+            ['else' ':' suite]            ['finally' ':' suite] |           'finally' ':' suite))...

في العادة else تكون جزء من جملة if في غالب اللغات، إلا أن هذه القواعد تعني أنه يمكننا استخدام else مع for وwhile وأيضاً try!.

مع for، فجملة else ستنفذ إذا لم تنفذي جملة for ولا مرة، كالتالي:
 

>>> lst = []    # قائمة فارغة>>>>>> for i in lst:...     print('for statement')... else:...     print('else!')...else!>>>

مكافئة تقريباً لـ:
 

>>> if lst:...     for i in lst:...             print('for statement')... else:...     print('else!')...else!>>>

هذه مفيدة مثلاً إذا كنت تريط طباعة قائمة تعليقات على مقال مثلاً، ولكن تريد طباعة جملة "لايوجد تعليقات على هذا المثال" إذا لم يكن هناك أي رد.

 

نفس الشيء، فمع while، ستنفذ إذا لم تنفذ ولا مرة:
 

>>> n = 0>>>>>> while n > 0:...     print('while statement')... else:...     print('else!')...else!>>>

مع try فالجملة ستنفذ إذا لم يحصل أي استثناء:
 

>>> try:...     print('try statement')... except:...     print('exception')... else:...     print('else!')...try statementelse!>>>

جملة try ستنفذ، إذا نجحت لو يحصل استثناء، فستنفذ بعدها else مباشرة.

 

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

2 إجابة على هذا السؤال .

  • 0

إستخدام رائع في عدة مواضع مهمة

 

حقا معلومة مفيدة جدا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اول مرة اعرف انها تستخدم مع

WHile

or

for

بجد كفوووووو

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .