آموزش پایتون - حلقه for
حلقه for یکی از ساختارهای کنترل جریان در زبان برنامهنویسی پایتون است که برای تکرار یک بخش از کد یا انجام یک عملیات به تعداد مشخص مورد استفاده قرار میگیرد. حلقه for به شما این امکان را میدهد که به طور متوالی بر روی آیتم های یک دنباله حرکت کنید و به تعداد آنها دستور یا دستورات مورد نظر را اجرا کنید
for متغیر_حلقه in دنباله:
دستور(ها)
برای مثال اگر دنباله یک لیست باشد، ابتدا آن لیست ارزیابی میشود. سپس، مورد اول در لیست به متغیر_حلقه اختصاص داده میشود. سپس، بلوک دستورات اجرا میشود. به ترتیب هر مورد در لیست به متغیر_حلقه اختصاص داده میشود و بلوک دستور(ها) تا انتهای دنباله اجرا میشود.
نمودار جریان
مثال
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!"
هنگام اجرای کد بالا، نتیجه زیر تولید میشود −
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!
تکرار با استفاده از اندیس دنباله (Iterating by Sequence Index)
یک روش جایگزین برای تکرار ، استفاده از اندیس دنباله است. در زیر یک مثال ساده آورده شده است −
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 با حلقه for
در پایتون می توانیم دستور else را به همراه دستور for استفاده کنیم
-
اگر دستور else با حلقه for استفاده شود، دستور else زمانی اجرا میشود که حلقه تمام عناصر لیست را تکرار کرده باشد.
مثال زیر ترکیبی از دستور else با دستور for را نشان میدهد که اعداد اول را از ۱۰ تا ۲۰ بررسی می کند. (منظور از عدد اول عددیست که به غیر از خودش و یک ، به عدد دیگری قابل تقسیم نباشد)
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'
break
زمانی که کد بالا اجرا میشود، نتیجه زیر را تولید میکند −
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