تعليمات الحلقة for




تستخدم هذه الحلقة لتكرار أية مكونات متتالية مثل سلسلة أو قائمة.

البناء الرياضي


for iterating_var in sequence:
statements(s)

يتم تقييم القائمة المتضمنة في التتالي الذي يتم العمل عليه حيث يتم إسناد المكون الأول إلى متحول التكرار بعدها يتم تنفيذ كتلة التعليمات ويتم إسناد كل مكون من القائمة من إلى متحول التكرار. ويتم بعدها تنفيذ كتلة التعليمات حتى يتم الانتهاء من التتالي كاملاً.

المخطط التدفقي


تعليمات الحلقة for

مثال
#!/usr/bin/python

for letter in'Python':# First Example
print 'Current Letter :', letter

fruits =['banana','apple','mango']
for fruit infruits:# Second Example
print 'Current fruit :', fruit

print"Good bye!"

وعندها تظهر النتيجة التالية
Current Letter : P
Current Letter : y
Current Letter : t
Current Letter : h
Current Letter : o
Current Letter : n
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

التكرار وفق دليل التتالي


هناك طريقة بديلة لتكرار كل مكون وذلك دليل التكرار ضمن التتالي نفسه.

مثال
#!/usr/bin/python

fruits =['banana','apple','mango']
for index in range(len(fruits)):
print 'Current fruit :', fruits[index]

print"Good bye!"

عندها تظهر النتيجة التالية
Current fruit : banana
Current fruit : apple
Current fruit : mango
Good bye!

هنا تمت الاستعانة بالتابع len() الذي يعطي العدد الكلي للعناصر في الصف كما أن التابع range() يعطي التتالي الفعلي لعملية التكرار.

استخدام تعليمة else مع الحلقات



  •  عند استخدام تعليمة else مع حلقة for فإنها تنفذ عند انتهاء حلقة for من تكرار القائمة.

  •  عند استخدام تعليمة else مع حلقة while فإنها تنفذ عندما يصبح الشرط غير محقق.


يبين المثال التالي تركيبة لتعليمة else مع تعليمة for والتي تبحث عن الأعداد الأولية بين العددين 10 و 20.
#!/usr/bin/python

for num in range(10,20): #to iterate between 10 to 20
for i in range(2,num): #to iterate on the factors of the number
if num%i == 0: #to determine the first factor
j=num/i #to calculate the second factor
print '%d equals %d * %d' % (num,i,j)
break #to move to the next number, the #first FOR
else: # else part of the loop
print num, 'is a prime number'

عندها تظهر النتيجة التالية
10 equals 2 * 5
11 is a prime number
12 equals 2 * 6
13 is a prime number
14 equals 2 * 7
15 equals 3 * 5
16 equals 2 * 8
17 is a prime number
18 equals 2 * 9
19 is a prime number

ليست هناك تعليقات:

إرسال تعليق