آموزش پایتون_for

یک حلقه یا Loop  دنباله ای از دستورالعمل است که به طور مداوم تکرار می شود تا شرایط خاصی به دست آید. به عنوان مثال، ما مجموعه ای از اقلام داریم و یک حلقه ایجاد می کنیم تا از طریق آن بتوانیم  تمام عناصر موجود در مجموعه را پیمایش کنیم. حلقه ها در Python می توانند با for یا while  ایجاد شوند.

در این جلسه قراره در مورد حلقه ها بحث کنیم. در ابتدا از for شروع میکنیم :

for روی هر کدام ا آیتم های دنباله ای مثل رشته، لیست و… تکرار میشود. به عبارت دیگر آیتم ها به همان ترتیبی که در دنباله هستند طاهر میشوند. مهمترین مسئله در این حلقه، تعداد دفعات تکرار مشخص است

مثلا کامپیوتر n عدد از کاربر دریافت میکنه و بزرگترین آنها را نمایش میده.

for var in sequence:
   do_statement(s)

حلقه for با string

 

>>> stg=”sufra.ir”
>>> for i in stg:
print(i)

s
u
f
r
a
.
i
r
>>>
نکته

وقتی حلقه for  را اجا میکنیم آیتم ها به هر تعدادی که هستند زیر هم دیگر چاپ میشوند. برای اینکه کنار هم چاپ شوند باید از (“”=print(i,end  استفاده کنیم

print(i,end=””) ???

end

همانطور که در تصویر بالا مشاهده میکنید end=’\n”  به صورت پیش فرض تعریف شده تا بعد از تایپ  هر آیتم به خط بعدی رفته تا آیتم های دیگر را چاپ کند.

stg="sufra.ir"
>>> for i in stg:
 print(i,end=" ")
s u f r a . i r

حلقه for با list

>>> a = ['python', 'html', 'c++']
 >>> for i in a:
 print(i , len(i))
python 6
 html 4
 c++ 3
 >>>

حلقه for با tuple

T=("A","B","C")
>>> for x in T:
 print(x)
A
 B
 C
 >>> for x in T:
 print(x,end="")
ABC
 >>>

حلقه for با  Dictionary

>>> d = {'x': 1, 'y': 2, 'z': 3}
 >>> for key in d:
 print (key, ":", d[key])
x : 1
 y : 2
 z : 3
>>> data = { "de": "Germany", "sk": "Slovakia", "hu": "Hungary", "ru": "Russia" }
>>> for k, v in data.items():
print("{0} is an abbreviation for {1}".format(k, v))
de is an abbreviation for Germany
 sk is an abbreviation for Slovakia
 hu is an abbreviation for Hungary
 ru is an abbreviation for Russia
 >>>

حلقه for با else

>>> words = ["cup", "star", "monkey", "bottle", "paper", "door"]
>>> for word in words:
print(word)
else:
print("Finished looping")
cup
star
monkey
bottle
paper
door
Finished looping
>>>

دستور else  بعد از تمام شدن حلقه اجرا میشود. ما لیستی از کلمات را با یک حلقه به پیش میبریم. وقتی تکرار شد، پیام “پایان حلقه” را چاپ می کنیم که در داخل بدن قرار دارد و پس از کلمه کلیدی دیگری قرار دارد.

حلقه for با range

تابع range لیستی از اعداد ۰-(۱-n) را تولید میکند.

 

>>>
 for i in range(1, 6):
print("Statement executed {0}".format(i))
Statement executed 1
 Statement executed 2
 Statement executed 3
 Statement executed 4
 Statement executed 5
 >>>
>>> for n in range(1, 11):
 print(n, end=' ')
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰
 >>> for n in range(0, 11, 2):
 print(n, end=' ')
۰ ۲ ۴ ۶ ۸ ۱۰
 >>>

حلقه for با ایندکس

>>> words = ["cup", "star", "monkey", "bottle", "paper", "door"]  >>> for word, idx in enumerate(words):  print("{0}: {1}".format(word, idx)) 0: cup  1: star  2: monkey  3: bottle  4: paper
  ۵: door  >>>

با استفاده از تابع enumerate عنصر لیست را با ایندکس آن چاپ کنیم.

حلقه for  تو  در تو

تا اینجا ما  مثالهای ما تک بعدی   با استفاده  از یک حلقه بوده است. برای استفاده از مثالهای چند بعدی مثلا ماتریس ها، بیشتز از یک حلقه  باید استفاده میکنیم. برای ماتریس های دو بعدی که نیاز به سطر و ستون  داریم از دو حلقه استفاده میکییم.

>>> nums = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>> for i in nums:
for e in i:
print(e, end=' ')
print()
۱ ۲ ۳ 
۴ ۵ ۶ 
۷ ۸ ۹

حلقه for با zip

>>> words1 = ["cup", "bottle", "table", "rock", "apple"]
 >>> words2 = ["trousers", "nail", "head", "water", "pen"]
 >>>
 for w1, w2 in zip(words1, words2):
 print(w1, w2)

cup trousers bottle nail table head rock water apple pen >>>

حلقه for و break

برنامه به محض رسیدن  به break از حلقه خارج میشود.

import random
 import itertools
for i in itertools.count():
val = random.randint(1, 30)
print(val)
if (val == 22):
 break
۱۳
 ۸
 ۱۸
 ۶
 ۲۰
 ۲۴
 ۱۳
 ۲۲

حلقه for با continue

برنامه با  شرطی که گذاشتیم وقتی به continue رسید آن را اجرا نمیکند و حلقه کار خود را ادامه میدهد

num = 0
for num in range(20):
num = num + 1
if (num % 2) == 0:
continue
print(num, end=' ')
print()
۱ ۳ ۵ ۷ ۹ ۱۱ ۱۳ ۱۵ ۱۷ ۱۹


دیدگاهتان را بنویسید

We are glad you have chosen to leave a comment. Please keep in mind that comments are moderated according to our comment policy.