عاطي نشر 4 فبراير 2016 أرسل تقرير نشر 4 فبراير 2016 أتعلّم حاليا لغة بايثون البرمجيّة، وأريد معرفة ماهي حلقة for وكيف تعمل، وبماذا ستُفيدني؟ 1 اقتباس
1 عبدالهادي الديوري نشر 4 فبراير 2016 أرسل تقرير نشر 4 فبراير 2016 حلقة For ببساطة هي جملة تقوم بتكرار الشيفرة التّالعة لها عددا من المرّات، وأنت (المبرمج) من يُحدّد عدد مرّات التّكرار، فمثلا لنقل أنّك لسبب ما تريد أن تطبع جملة "Hello, World!” 100 مرة، لا يُمكنك أن تقوم بنسخ جملة الطّباعة 100 مرّة لأنّ الأمر سيأخذ الكثير من وقتك، عوضا عن ذلك يُمكنك استعمال حلقة For لتكرار جملة الطّباعة 100 مرّة، انظر المثال: for count in range(1, 101): print 'Hello, World!' هذه القطعة من الشّيفرة كافيّة لطباعة جملة التّرحيب 100 مرّة ولا تتطلّب الكثير من الوقت. يُمكنك كذلك أن تقوم بطباعة مُتغيّر التّكرار (count في هذه الحالة) الذي يحمل قيمة التكرار ويزداد كل مرّة، فمثلا المثال التّالي: for count in range(1, 6): print count سيكون مخرج المثال أعلاه قيما كالتّالي: 1 2 3 4 5 يُمكنك كذلك أن تستعمل حلقة التّكرار For لكي تقوم بالمرور حول قيم قائمة معيّنة: list = ['Hello', 4, 6, 9, 'World!','Hi'] for item in list: print item الشيفرة أعلاه ستطبع جميع مُكونات القائمة list. 1 اقتباس
1 samer_jabal نشر 4 فبراير 2016 أرسل تقرير نشر 4 فبراير 2016 (معدل) حلقة "لأجل" for تستعمل الوسيلة method: التالي next() التي تنوجد عندما تحول الكائن المراد الترديد iterate فوقه بإستخدام الدالة iter() حيث تعود بكائن ترديد يملك الوسيلة next(). تفقد التالي: >>> obj="python" >>> iobj=iter(obj) >>> iobj.next() 'p' حسنًا, الحلقة for تستخدم هذه الطريقة في العمل.. لكن قد يخطر في بالك سؤال: كيف تعرف أن هذه النهاية وتتوقف عندها؟ الجواب: تتوقف الحلقة عندما يعتلي الخطأ: StopIteration. الآن سأستعمل نفس الكائن السابق iobj وأردِّد محتوياته بإستخدام الحلقة for ولكن سأترك آخر قسم ألا وهو الحرف 'n' لِغاية ٍفي نفسي :). >>> for i in range(len(iobj)-2): ... print iobj.next() ... y t h o جرب ألَّا تقوم بالسابق ونفذ الأمر بواسطة الحلقة for مباشرةً (لكننا سنبقى نستعمل الذي في الأعلى): >>> for i in iobj: ... print i ... y t h o n الذي حدث أن الحلقة for إستخدمت الوسيلة next() مما نتج عنه تخطي ما قد ردَّدناه سابقًا: 'p'. والآن آخر جزء.. ظهور الخطأ StopIteration الذي يعني توقف الحلقة. >>> iobj.next() Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration أتمنى أن أكون قد أوضحت الفكرة بيسر وسهولة. تم التعديل في 4 فبراير 2016 بواسطة samer_jabal عدلته بسبب وجود بعض الأخطاء الإملائية وبعض الأخطاء في التسمية. 1 اقتباس
0 samer_jabal نشر 31 مارس 2016 أرسل تقرير نشر 31 مارس 2016 وأود أن أضيف أنه في بايثون 3 قد أصبحت الوسيلة ()next بالإسم: ()__next__. اقتباس
السؤال
عاطي
أتعلّم حاليا لغة بايثون البرمجيّة، وأريد معرفة ماهي حلقة for وكيف تعمل، وبماذا ستُفيدني؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.