حلقه for در پایتون
در این آموزش از کتاب برخط پایتون، Loop یا حلقه for را مورد بررسی قرار می دهیم. با استفاده از حلقه for در پایتون، امکان جستجو و پیمایش بین آیتم های داده هایی نظیر لیست و رشته فراهم خواهد شد.
شکل دستور
for iterating_var in sequence:
statements(s)
با توجه به مثال بالا آیتم های موجود در sequence یکی یکی به iterating_var اختصاص داده می شوند و درون بلاک statements(s) اجرا می شوند، این تا زمانی تکرار می شود که آیتم های درون sequence به پایان برسند. به مثال زیر توجه کنید:
#!/usr/bin/python3
myList = [1, 2, [3, 4], 5, 6]
for myItem in myList:
print myItem
خروجی برنامه:
1
2
[3, 4]
5
6
تابع range() در پایتون
این تابع داخلی (build-in)، برای پیمایش درون ترتیبی از اعداد استفاده می شود. تابع range() یک iterator ایجاد می کند که برای حرکت و پیشروی در اعداد از 0 تا n-1 استفاده می شود. برای بدست آوردن شیء ای از لیست برای این ترتیب عددی از تابع تغییر تایپ list() استفاده می کنیم. حالا می توان با استفاده از Loop یا حلقه for درون این لیست پیمایش کرد:
>>> for var in list(range(5)):
print (var)
خروجی
0
1
2
3
4
مثال
#!/usr/bin/python3
for letter in 'Python': # traversal of a string sequence
print ('Current Letter :', letter)
print()
fruits = ['banana', 'apple', 'mango']
for fruit in fruits: # traversal of List sequence
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/python3
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() ترتیب عددی به اندازه طول لیست برای پیمایش در حلقه for در اختیار ما قرار می دهد.
استفاده از عبارت else در حلقه ها
زبان برنامه نویسی پایتون استفاده از عبارت else را به همراه حلقه for پشتیبانی می کند.
- در صورتیکه عبارت else به همراه حلقه for استفاده شود، بلاک else تنها در صورتی اجرا می شود که حلقه به صورت معمول پایان یابد (و نه توسط عبارت break).
- زمانیکه عبارت else به همراه حلقه while بیاید، عبارت else تنها در صورتی اجرا می شود که شرط آن false باشد.
مثال
مثال زیر ترکیب عبارت else با حلقه for را نشان می دهد، که عدد زوج را در لیست داده شده جستجو می کند.
#!/usr/bin/python3
numbers = [11,33,55,39,55,75,37,21,23,41,13]
for num in numbers:
if num%2 == 0:
print ('the list contains an even number')
break
else:
print ('the list doesnot contain even number')
خروجی
the list does not contain even number