for n in range(3): print(n, "YES")else: print(n, "NO")
output
0 YES1 YES2 YES2 NO
لماذا
2 NO
?
for n in range(3): print(n, "YES")else: print(n, "NO")
output
0 YES1 YES2 YES2 NO
لماذا
2 NO
?
ولكن كان عليك أن تسأل أيضا لماذا تم طباعة 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 .
اتمنى أن الأمر يكون أتضح .
وضحت بارك الله فيك ..
فكرت بهذا الأمر .. لكن قلت اتأكد افضل ممكن else تحمل معنى آخر مع الـ loops
شكرا لك.
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
(map share people)
فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader