Adam Ebrahim نشر 11 يونيو 2021 أرسل تقرير نشر 11 يونيو 2021 لدي عدة حلقات متداخلة وأريد أن أقوم بإيقاف الحلقة الخارجية عند تحقيق شرط ما، لكن المشكلة أن الحلقة الداخلية هي ما تتوقف: for i in range(5): for n in range(5): if i == 5: break # أريد هنا أن يتم إيقاف الحلقة الخارجية print(i, n) 1 اقتباس
1 عبدالله عبدالرحمن11 نشر 11 يونيو 2021 أرسل تقرير نشر 11 يونيو 2021 هناك العديد من الطرق لعمل ذلك مثل وضع شرط كعلم flag flag = False for i in range(5): if flag:break for n in range(5): if i == 4 and n ==5: flag = true print(i, n) إرسال إستثناء try: for i in range(5): for n in range(5): if i == 5: raise StopIteration print(i, n) except StopIteration: pass تفحص نفس الحالة مرةً أخرى for i in range(5): for n in range(5): if n == 5: break print(i, n) if n == 5: break إستخدام صيغة for و else for i in range(5): for n in range(5): if n == 5: break print(i, n) else: continue break وضعها في دالة def check_sth(): for i in range(5): for n in range(5): if n == 5: return print(i, n) check_sth() # تشغيل عند الحاجة 2 اقتباس
0 Wael Aljamal نشر 11 يونيو 2021 أرسل تقرير نشر 11 يونيو 2021 يمكننا إيقاف الحلقتين سوياً، بعدة طرق، استخدام Product التي تقوم على الجداء الديكارتي لقائمتين وتمر على الناتج بحلقة واحدة، هنا تعليمة break واحدة تكسر الحلقة: from itertools import product for x, y in product(range(10), range(10)): if y == : break أو نضع الحلقتين ضمن دالة و نستخدم تعليمة return: def myLoops(): for i in range(10): for j in range(10): print(...) if j == 5: return myLoops() يمكن عمل متغير بولياني Boolean يقوم بكسر الحلقة الخارجية حيث يتم اختباره بعد الخروج من الحلقة الداخلية، حيث نغير قيمته إلى Ture مثلا: myBreak = false for i in range(5): for n in range(5): if i == 5: myBreak = true break print(i, n) if myBreak : break # هنا نخرج من الحلقة الخارجية 1 اقتباس
السؤال
Adam Ebrahim
لدي عدة حلقات متداخلة وأريد أن أقوم بإيقاف الحلقة الخارجية عند تحقيق شرط ما، لكن المشكلة أن الحلقة الداخلية هي ما تتوقف:
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.