حلقه های for در پایتون این قابلیت را دارند که بتوانند یک جمله یا لیست یا رشته و یا هرچیز دیگه ای را به صورت متوالی انجام داده یا خروجی آن را چاپ کند.
قاعده استفاده از حلقه های for در پایتون به صورت زیر است:
1 2 |
for iterating_var in sequence: statements(s) |
مقدار یا عبارتی که بعنوان iterating_var مشخص می شود تا هنگامی که sequence ادامه داشته باشد بررسی میشود.
ساختار کلی حلقه های for بدین صورت است:
به مثال زیر توجه کنید:
1 2 3 4 5 6 7 |
#!/usr/bin/python for letter in 'Python': # First Example print 'Current Letter :', letter fruits = ['banana', 'apple', 'mango'] for fruit in fruits: # Second Example print 'Current fruit :', fruit print "Good bye!" |
بعد از به اجرا در آوردن کد خروجی مشابه زیر دریافت خواهید کرد:
1 2 3 4 5 6 7 8 9 10 |
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! |
تکرار در اندیس ها
گاهی اوقات تکرار بو سیله و به تعداد اندیس های مثلا موجود در یک لیست اتفاق می افته که بعنوان مثال میتونید به اسکریپت زیر نگاه کنید:
1 2 3 4 5 |
#!/usr/bin/python fruits = ['banana', 'apple', 'mango'] for index in range(len(fruits)): print 'Current fruit :', fruits[index] print "Good bye!" |
وقتی اسکریپت بالا رو اجرا کنید خروجی مشابه زیر دریافت میکنید:
1 2 3 4 |
Current fruit : banana Current fruit : apple Current fruit : mango Good bye! |
در این بخش من از یک تابع built-in به اسم ()len برای گفتن طول لیست استفاده کردم و به حلقه for اعلام کردم به ازای تعداد اندیس ها که خروجی همون تابع هم هست مقادیر لیست رو به من نشون بده.
استفاده از else در حلقه ی for
شما میتونید از عبارت else در حلقه های for هم استفاده کنید. مثال زیر نمایش اعداد اول بین ۱۰ تا ۲۰ هست:
1 2 3 4 5 6 7 8 9 |
#!/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' |
بعد از اجرای این کد خروجی زیر رو دریافت خواهید کرد:
1 2 3 4 5 6 7 8 9 10 |
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 |
حلقه های تو در تو
قاعده کلی استفاده از این حلقه ها به صورت زیر است:
حلقه های تو در تو برای for
1 2 3 4 |
for iterating_var in sequence: for iterating_var in sequence: statements(s) statements(s) |
حلقه های تو در تو برای while
1 2 3 4 |
while expression: while expression: statement(s) statement(s) |
برای مثال اعداد اول از ۱ تا ۱۰۰ رو میتونیم به صورت زیر بنویسیم:
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/python i = 2 while(i < 100): j = 2 while(j <= (i/j)): if not(i%j): break j = j + 1 if (j > i/j) : print i, " is prime" i = i + 1 print "Good bye!" |
و همچنین خروجی مثل زیر رو دریافت خواهید کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
2 is prime 3 is prime 5 is prime 7 is prime 11 is prime 13 is prime 17 is prime 19 is prime 23 is prime 29 is prime 31 is prime 37 is prime 41 is prime 43 is prime 47 is prime 53 is prime 59 is prime 61 is prime 67 is prime 71 is prime 73 is prime 79 is prime 83 is prime 89 is prime 97 is prime Good bye! |