حلقهها و الگوهای تکرار
شمارش، جمع، میانگین، جستوجو و پیدا کردن کوچکترین مقدار را تمرین کن.
بعد از این فصل میتوانی…
- حلقهٔ while و for بسازی.
- از break و continue درست استفاده کنی.
- با متغیرهای کمکی دادهها را تحلیل کنی.
پیشنهاد برای پیشنیاز: تابعها و استفادهٔ دوباره از کد
حلقهها و الگوهای تکرار
ویدیوی این فصل هنوز اضافه نشده است. میتوانی همین حالا آموزش متنی و تمرینها را شروع کنی.
while و شرط پایان
حلقهٔ while تا وقتی شرطش درست است تکرار میشود. شرط پیش از هر دور بررسی میشود؛ اگر از ابتدا نادرست باشد، بدنه حتی یک بار هم اجرا نمیشود.
در شمارش معکوس باید n را کم کنی. اگر شرط همیشه درست بماند و راه خروج نداشته باشی، حلقه بینهایت میشود. کارگاه سایت چنین اجرایی را پس از ۱۰ ثانیه متوقف میکند.
شمارش معکوس
n = 3
while n > 0:
print(n)
n = n - 1
print("حرکت!")خروجی مورد انتظار
3 2 1 حرکت!
for برای پیمایش اعضا
for هر بار یک عضو از مجموعهٔ قابل پیمایش را به متغیر حلقه میدهد. در یک فهرست محدود، بدنه برای هر عضو یک بار اجرا میشود. لازم نیست خودت متغیر شمارنده را جلو ببری.
سلام به اعضای گروه
for name in ["Sara", "Ali", "Mina"]:
print("سلام", name)خروجی مورد انتظار
سلام Sara سلام Ali سلام Mina
تفاوت break و continue
break از حلقهٔ فعلی بیرون میرود. continue باقی دستورهای همین دور را رد میکند و به دور بعد میرود. این دو یک کار انجام نمیدهند.
در نمونه، عدد منفی نادیده گرفته میشود و صفر پایان پردازش است؛ بنابراین عدد ۹ بررسی نخواهد شد.
رد کردن و پایان دادن
for number in [4, -2, 6, 0, 9]:
if number == 0:
break
if number < 0:
continue
print(number)خروجی مورد انتظار
4 6
شمارش، جمع و میانگین
متغیرهای count و total را پیش از حلقه صفر کن. در هر دور count یک واحد زیاد میشود و مقدار فعلی به total اضافه میشود. میانگین پس از حلقه total / count است.
اگر هیچ دادهای نداریم، count صفر است و نباید تقسیم انجام دهیم. این حالت مرزی را از ابتدا در نظر بگیر.
میانگین قدمها
total = 0
count = 0
for value in [6, 8, 10]:
total = total + value
count = count + 1
if count > 0:
print(total / count)خروجی مورد انتظار
8.0
بزرگترین، کوچکترین و جستوجو
برای کوچکترین یا بزرگترین مقدار از None به عنوان «هنوز دادهای ندیدهام» استفاده کن. مقدار اولیهٔ -1 برای تمام دادهها مناسب نیست؛ مثلاً بزرگترینِ چند عدد منفی ممکن است کمتر از -1 باشد.
is None نبود مقدار را بررسی میکند. is هویت شیء را میسنجد و جایگزین == برای مقایسهٔ عدد و متن نیست. برای یافتن یک عضو هم میتوان پرچم found را از False به True تغییر داد.
کمترین مقدار و جستوجو
smallest = None
found = False
for value in [9, 3, 12]:
if smallest is None or value < smallest:
smallest = value
if value == 3:
found = True
print(smallest)
print(found)خروجی مورد انتظار
3 True
گزارش نمرهها
برای نمرههای ۱۲، ۱۸، ۹ و ۱۷ تعداد نمرههای حداقل ۱۰، جمع و میانگین تمام نمرهها را چاپ کن.
یک راهنمای کوچک
برای همهٔ نمرهها جمع را تغییر بده، اما شمارندهٔ قبولی را فقط داخل شرط زیاد کن.
پاسخ پیشنهادی و خروجی
scores = [12, 18, 9, 17]
passed = 0
total = 0
for score in scores:
total += score
if score >= 10:
passed += 1
print(passed)
print(total)
print(total / len(scores))خروجی نمونه
3 56 14.0
خودآزمایی
پاسخ را انتخاب کن و دلیل آن را بخوان. این بخش برای تمرین است و نمرهٔ رسمی ثبت نمیکند.