حلقههای تکرار در پایتون
حلقههای تکرار در پایتون (Python Loops) فرض کنید میخواهید جملهی “سلام” را ۱۰ بار چاپ کنید. یک راه این است که
فرض کنید میخواهید جملهی “سلام” را ۱۰ بار چاپ کنید. یک راه این است که دستور print() را ۱۰ بار بنویسید:
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")
print("سلام")اما این روش اصلاً مناسب نیست. اگر بخواهید این جمله را ۱۰۰ بار یا ۱۰۰۰ بار چاپ کنید چه؟ اینجاست که حلقه (Loop) به کمک ما میآید. حلقهها باعث میشوند یک یا چند دستور را بدون نیاز به تکرار دستی، بارها اجرا کنیم.
در پایتون برای تکرار یک عملیات معمولاً از حلقه for استفاده میکنیم.
ساختار کلی آن به شکل زیر است:
for variable in sequence:
دستورهاfor آغاز حلقه را مشخص میکند.variable در هر بار اجرای حلقه یک مقدار جدید دریافت میکند.sequence مجموعهای از مقادیر است که حلقه روی آن حرکت میکند.for i in range(5):
print("Hello")خروجی
Hello
Hello
Hello
Hello
Helloدر این مثال، دستور print() پنج بار اجرا میشود.
i چیست؟در مثال قبل متغیری به نام i داشتیم.
for i in range(5):
print(i)خروجی
0
1
2
3
4همانطور که میبینید، مقدار i در هر بار اجرای حلقه تغییر میکند.
در اولین دور برابر ۰ است، سپس ۱، بعد ۲ و …
نام i فقط یک نام قراردادی است و میتوان هر نام دیگری انتخاب کرد.
مثلاً:
for number in range(5):
print(number)یا
for x in range(5):
print(x)همه این کدها دقیقاً یک کار انجام میدهند.
تابع range() یکی از پرکاربردترین توابع در حلقههاست.
این تابع مجموعهای از اعداد پشت سر هم تولید میکند.
مثلاً:
range(5)اعداد زیر را تولید میکند:
0
1
2
3
4دقت کنید که عدد ۵ تولید نمیشود.
یعنی همیشه از صفر شروع میشود و تا یک عدد قبل از مقدار نوشته شده ادامه پیدا میکند.
for i in range(8):
print(i)خروجی:
0
1
2
3
4
5
6
7چاپ اعداد ۱ تا ۵:
for i in range(1, 6):
print(i)خروجی:
1
2
3
4
5در اینجا range(1, 6) یعنی:
for i in range(3):
print("Python")خروجی:
Python
Python
Pythonهر بار که حلقه اجرا میشود، به آن یک دور (Iteration) گفته میشود. اگر range(5) را استفاده کنیم، حلقه ۵ دور اجرا خواهد شد.
تا اینجا از range() فقط با یک عدد استفاده کردیم:
range(5)اما تابع range() میتواند سه پارامتر نیز دریافت کند:
range(start, stop, step)که هر کدام معنی خاصی دارند:
اگر عدد شروع را مشخص کنیم، حلقه از همان عدد آغاز میشود.
for i in range(3, 8):
print(i)خروجی
3
4
5
6
7در این مثال:
پارامتر سوم مشخص میکند که هر بار چند واحد جلو برویم.
مثلاً اگر بخواهیم فقط اعداد زوج را چاپ کنیم:
for i in range(2, 11, 2):
print(i)خروجی
2
4
6
8
10هر بار مقدار i دو واحد افزایش پیدا میکند.
for i in range(0, 21, 5):
print(i)خروجی
0
5
10
15
20در این مثال حلقه هر بار ۵ واحد جلو میرود.
اگر مقدار step را منفی قرار دهیم، حلقه برعکس حرکت میکند.
for i in range(5, 0, -1):
print(i)خروجی
5
4
3
2
1در اینجا:
for i in range(10, -1, -1):
print(i)خروجی
10
9
8
7
6
5
4
3
2
1
0دقت کنید که چون عدد پایان -1 نوشته شده است، مقدار 0 نیز چاپ میشود.
for i in range(3, 31, 3):
print(i)for i in range(1, 20, 2):
print(i)for i in range(2, 21, 2):
print(i)| دستور | خروجی |
|---|---|
range(5) | 0 تا 4 |
range(2, 6) | 2 تا 5 |
range(1, 10, 2) | 1، 3، 5، 7، 9 |
range(10, 0, -1) | 10 تا 1 |
range(20, -1, -5) | 20، 15، 10، 5، 0 |
بسیاری از افراد مبتدی انتظار دارند دستور زیر عدد ۵ را نیز چاپ کند:
for i in range(1, 5):
print(i)
اما خروجی این برنامه چنین است:
1 2 3 4
دلیل آن این است که عدد پایان (stop) هرگز در خروجی range() تولید نمیشود و حلقه همیشه تا یک عدد قبل از مقدار پایان ادامه پیدا میکند.
گاهی لازم است یک حلقه را داخل حلقهی دیگری قرار دهیم. به این نوع حلقهها حلقههای تو در تو (Nested Loops) گفته میشود.
در این حالت، به ازای هر بار اجرای حلقهی بیرونی، حلقهی داخلی به طور کامل اجرا میشود.
ساختار کلی آن به شکل زیر است:
for i in range(...):
for j in range(...):
دستورهادر اینجا:
for i in range(3):
for j in range(2):
print(i, j)خروجی
0 0
0 1
1 0
1 1
2 0
2 1در این مثال:
i ابتدا صفر است.j به ترتیب ۰ و ۱ خواهد بود.i برابر ۱ میشود و دوباره حلقهی داخلی از ابتدا اجرا میشود.جدول زیر نشان میدهد که مقادیر i و j چگونه تغییر میکنند:
| دور اجرای حلقه | مقدار i | مقدار j |
|---|---|---|
| 1 | 0 | 0 |
| 2 | 0 | 1 |
| 3 | 1 | 0 |
| 4 | 1 | 1 |
| 5 | 2 | 0 |
| 6 | 2 | 1 |
همانطور که مشاهده میکنید، هر بار که مقدار i تغییر میکند، مقدار j دوباره از ابتدا شروع میشود.
یکی از کاربردهای حلقههای تو در تو، رسم شکلهای مختلف است.
for i in range(5):
for j in range(5):
print("*", end="")
print()خروجی
*****
*****
*****
*****
*****حلقهی داخلی در هر سطر، پنج ستاره چاپ میکند.
print("*", end="")پارامتر end="" باعث میشود پس از چاپ هر ستاره، مکاننما به خط بعد نرود.
بعد از پایان حلقهی داخلی، دستور زیر اجرا میشود:
print()که باعث میشود چاپ از سطر بعدی ادامه پیدا کند.
for i in range(3):
for j in range(8):
print("*", end="")
print()خروجی
********
********
********for i in range(3):
for j in range(4):
print(j, end=" ")
print()خروجی
0 1 2 3
0 1 2 3
0 1 2 3در حلقههای تو در تو، تعداد کل دفعات اجرای حلقهی داخلی برابر است با حاصلضرب تعداد تکرار دو حلقه. مثلاً در کد زیر:
for i in range(5):
for j in range(4):
print("*")
حلقهی بیرونی ۵ بار اجرا میشود. حلقهی داخلی در هر بار، ۴ مرتبه اجرا میشود. بنابراین دستور print("*") در مجموع ۲۰ بار اجرا خواهد شد.
پاراگراف نوشته شود.
some code
حلقههای تکرار در پایتون (Python Loops) فرض کنید میخواهید جملهی “سلام” را ۱۰ بار چاپ کنید. یک راه این است که
عملگرهای مقایسهای (Comparison Operators) تا اینجا یاد گرفتیم که با عملگرهای محاسباتی میتوانیم اعداد را با هم جمع، تفریق و…
دریافت ورودی از کاربر در پایتون (Python Input) تا اینجا یاد گرفتیم که چگونه مقدار یک متغیر را خودمان داخل
عملگرهای محاسباتی در پایتون (Arithmetic Operators) تقریباً تمام برنامهها به انجام محاسبات نیاز دارند؛ از جمع و تفریق ساده گرفته
کار با رشتهها در پایتون (Python Strings) مدیریت و پردازش متنها در برنامهها در دنیای برنامهنویسی، اطلاعات همیشه عدد و
متغیرها در پایتون (Python Variables) اولین قدم برای ذخیره و پردازش اطلاعات تصور کنید یک برنامه مینویسید که قرار است
شروع برنامه نویسی با پایتون ساخت اولین پروژه (Hello World) فهرست مطالب بعد از نصب Python چه کاری انجام دهیم؟
آموزش نصب پایتون و ابزارهای موردنیاز (راهنمای کامل برای ویندوز) اگر تصمیم گرفتهاید برنامهنویسی را یاد بگیرید، احتمالاً نام زبان
الگوهای کندل استیک پیشرفته: راهنمای جامع برای معاملهگران حرفهای الگو های کندل استیک پیشرفته (یا به بیان دیگر الگوهای شمعی
آیلتس جنرال یا آکادمیک؟ کدام را باید انتخاب کنیم؟ آیا میدانید که انتخاب اشتباه بین آیلتس آکادمیک و جنرال میتواند
دانلود رایگان نمونه سوالات آزمون PTE جنرال اگر تصمیم گرفتهاید با هدف مهاجرت به یک کشور انگلیسی زبان، در آزمون
معرفی آزمون های زبان انگلیسی معتبر در ایران| کدام یک بهتر است؟ اگه قصد ادامه تحصیل یا مهاجرت داشته باشید،
بهترین روشهای آمادگی برای آزمون تافل چگونه برای آزمون تافل آماده شویم؟ آیا شما هم قصد دارید برای کسب نمره
چگونه در خارج از کشور برای آزمون آیلتس ثبت نام کنیم؟ اگر قصد مهاجرت تحصیلی یا کاری دارید، احتمالاً نام
آزمون GRE مناسب چه رشتههایی است؟ اگر قصد ادامه تحصیل در مقاطع کارشناسی ارشد یا دکترا در دانشگاههای بینالمللی را
بهترین نمونه سوالات اسپیکینگ تافل هوم ادیشن آزمون تافل هوم ادیشن این روزها یکی از پرطرفدارترین گزینهها برای سنجش مهارت
نحوه ثبت نام در آزمون دولینگو در ایران به صورت کامل نحوه ثبت نام در آزمون دولینگو در ایران چگونه
هزینه آزمون GRE در ایران چقدر است؟ اگر قصد مهاجرت تحصیلی دارید، احتمالاً نام آزمون GRE به گوشتان خورده است.
راهنمای کامل ثبتنام و پرداخت هزینه آزمون PTE در ترکیه برای متقاضیان ایرانی آزمون PTE (Pearson Test of English) یکی از
ووچر آزمون چیست و چگونه میتوان آن را تهیه کرد؟ ثبتنام در آزمونهای بینالمللی مانند TOEFL، GRE، PTE، GMAT، IELTS
بهترین تکنیک های لیسنینگ آیلتس برای کسب نمره بالا آزمون آیلتس (IELTS) یکی از معتبرترین آزمونهای ارزیابی مهارت زبان انگلیسی
آزمون پلاس مرجع آموزش برنامهنویسی، هوش مصنوعی، شبکه، نمونه سؤالات کنکورهای کامپیوتر، آزمونهای زبان دکتری و مدارک بینالمللی فناوری اطلاعات است. با ارائه آموزشهای تخصصی، منابع آموزشی و راهنمای آزمونها، به دانشجویان و متخصصان کمک میکنیم تا مهارتهای خود را توسعه داده و در مسیر موفقیت تحصیلی و شغلی گام بردارند.