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

كيف تعمل for مع else

بدأه m ahmed في 4 أكتوبر 2014 · 3 رد · 1,141 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
for n in range(3):   print(n, "YES")else:    print(n, "NO")

output

0 YES1 YES2 YES2 NO

لماذا

2 NO

 ?

1
#2

ولكن كان عليك أن تسأل أيضا لماذا تم طباعة 2 مرتين واحده yes و أخرى no ... الجواب هو أن البرنامج يعمل بصوره طبيعيه جدا..

 

أول لما بدأت الحلقه كان ال n=0 تمام ... وبعد كدا دخلنا فى ال loop وتم تنفيذ الأمر و هو طباعة n والتى تساوى الأن 0 و بجانبها yes وعدنا مره أخرى لبداية الloop واصبحت ال n=1 وتم تنفيذ الأمر وطباعة yes 1 وعدنا مره أخرى و أصبحت ال n=2 وهذه أخر حاجه ولن يتم الرجوع للحلقه التكراريه مره أخرى ( لأنه كما تعلم فإن ال range تصل إلى الرقم المكتوب ناقص واحد) فبعد طباعة yws 2 نحاول العوده للحلقه التكراريه مره أخرى فنجد ان الrange قد وصل للنهايه ... فنخرج من ال for ولكن مازالت ال n=2 وننتقل للأمر الذى يليه وهو طباعة n وجانبها No >>  لذلك تم طباعة 2 no .

 

اتمنى أن الأمر يكون أتضح .

#3

وضحت بارك الله فيك ..

فكرت بهذا الأمر .. لكن قلت اتأكد افضل ممكن else تحمل معنى آخر مع الـ loops

شكرا لك.

#4

else تتحقق في حالة انتهاء الحاوية ال container الذي تقوم بعمل ال loop عليه

 

 
>>> for x in []:
...     print x
... else:
...     print "empty list"
...     
... 
empty list
>>> for x in ["hi", "bye", "okay"]:
...     print x
... else:
...     print "empty list"
...     
... 
hi
bye
okay
empty list
1
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

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