الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

بدأه Mr.B في 6 مارس 2014 · 2 رد · 802 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

أول مرة نظرت لقواعد بايثون على صفحة قواعد اللغة، لفت نظري وجود جملة 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 statement
else!
>>>

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

3
#2

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

 

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

Untitled-18.jpg

#3

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

WHile

or

for

بجد كفوووووو

مواضيع مشابهة