
یادگیری برنامهنویسی مثل بالا رفتن از پلههاست 🪜. هر پله ما رو میبره به پلهی بعدی. این جلسه از نیاز به تکرار 🔁 شروع میکنیم، بعد میرسیم به مجموعهها 📦، بعد سراغ شرط ⚖️ و حلقه 🔄 با هم، و در آخر وارد دنیای کتابخانهها 📚 و پکیجها 📦 میشیم.
وقتی یک کار باید چند بار تکرار بشه (مثلاً ۱۰ بار جمع ➕ بزنیم یا ۵ بار پیغام چاپ کنیم 🖨️)، منطقی نیست ۱۰ خط دستور یکسان بنویسیم. اینجاست که حلقه تکرار (Loop 🔄) وارد بازی 🎮 میشه.
در پایتون، حلقهای داریم به اسم for که دقیقاً برای همین ساخته شده. این حلقه تعداد دفعات تکرار رو میپرسه، هربار یک قدم جلو میره 🚶، و وقتی به پایان رسید 🛑، متوقف میشه.
ساختار کلی:
for x in [بازه یا مجموعه]: pass
مثال عملی:
for x in range(10): print(x)
خروجی:
0 1 2 3 4 5 6 7 8 9
اینجا پایتون عددهای ۰ تا ۹ رو یکییکی وارد حلقه میکنه 🔄 و برای هر کدوم دستور داخل حلقه (print) اجرا میشه.
ما اینجا یه سؤال مهم میمونه: این range که توی کد استفاده کردیم، اصلاً چی هست؟
خود حلقه بدون داده به درد نمیخوره 🚫؛ باید چیزی باشه که روی اون حرکت کنه. اینجاست که تابع range وارد میشه.
range(10) → اعداد ۰ تا ۹
range(10,20) → اعداد ۱۰ تا ۱۹
📌 نکته:
اگر یک عدد بدی → بازه از ۰ تا یکی کمتر از اون عدد.
اگر دو عدد بدی → اولی میشه min (شروع) ⬅️، دومی میشه max (پایان ➡️، ولی شامل نمیشه).
print(range(10))
خروجی:
range(0, 10)
اینجا پایتون نمیاد همهی عددها رو نشون بده 👀. چون range یک کلاس (Class) خاصه که فقط «قول میده» ✋ اعداد رو وقتی نیاز شد تولید کنه (Lazy Evaluation). پس خروجی یعنی: «یک شئ از نوع range که از ۰ تا ۱۰ تعریف شده.»
این نکته خیلی مهمه ⚡ چون باعث میشه حافظهی RAM 💾 الکی پر نشه.
برنامهای بنویسید که ۱۰ عدد از کاربر بگیره و معدل عددهای زوج رو چاپ کنه.
کد:
numbers = [] for i in range(10): n = int(input("یک عدد وارد کن: ")) numbers.append(n) even_numbers = [x for x in numbers if x % 2 == 0] if len(even_numbers) == 0: print("عدد زوج وجود ندارد.") else: avg = sum(even_numbers) / len(even_numbers) print("معدل اعداد زوج:", avg)
اینجا برای اولین بار از لیست 📋 استفاده کردیم. پس حالا وقتشه دربارهی «مجموعهها» بیشتر یاد بگیریم.
اینجا برای اولین بار با لیست آشنا شدی. دیدی؟ برای ذخیرهسازی دادهها مجبور شدیم لیست درست کنیم. اینجا نقطهی ورود ما به دنیای مجموعههاس
وقتی یک متغیر میسازیم، دادهاش در یک جای تصادفی از RAM ذخیره میشه 💾. اگر تعداد دادهها کم باشه مشکلی نیست. اما تصور کن صدها یا هزاران متغیر داشته باشی 😅 — پیدا کردنشون برای CPU خیلی سخت میشه.
راهحل: استفاده از مجموعهها.
لیست یعنی یک بستهی مرتب از دادهها 📦. همه کنار هم، با یک اسم 🏷️، و قابل اندیسگذاری.
numbers = [100, 2, 3, 4, 5, 6] print(numbers[0]) # خروجی: 100
ویژگیهای مهم:
Same name: همه زیر یک اسم جمع میشن.
Same address: پشت سر هم در حافظه ذخیره میشن.
Same type: معمولاً همنوع هستند، اما پایتون اجازه میده قاطی هم بذاری 🎭.
حالا که میتونی دادهها رو کنار هم بذاری، وقتشه سراغ شرطها بریم. چون فقط ذخیرهکردن کافی نیست؛ باید بتونی روی این دادهها فکر کنی و تصمیم بگیری.
for x in numbers: if x % 2 == 0: print(x, "عدد زوج است")
اینجا حلقه همهی دادهها رو مرور میکنه 🔄، و شرط انتخاب میکنه که کدوم رو چاپ کنه.
تا اینجا همهچیز رو خودمون نوشتیم ✍️: کدهای ساده، حلقهها، لیستها.
ولی همیشه نمیخوایم از صفر شروع کنیم 🚀.
ساختار پایتون اینطوریه:
کد → کوچکترین واحد (مثل آجر 🧱)
تابع (Function) → چند خط کد آماده (مثل یک اتاق 🏠)
کلاس (Class) → مجموعهای از توابع و دادهها (مثل یک ساختمان 🏢)
کتابخانه (Library) → ساختمانی پر از کلاسها و توابع (مثل یک شهرک 🏙️)
پکیج (Package) → یک محله پر از کتابخانهها 🏘️
📌 همونطور که تو متن تو بود:
«کد → تابع → کلاس → کتابخانه → پکیج»
import math print(math.sqrt(16)) # خروجی: 4.0
سؤال: برنامهای بنویسید که مصرف برق کاربران یک منطقه رو بگیره، میانگین رو حساب کنه، و پرمصرفها رو پیدا کنه و جریمه کنه 🚨.
کد:
n = int(input("تعداد کاربران منطقه: ")) consumptions = [] for i in range(n): c = float(input(f"مصرف کاربر {i+1}: ")) consumptions.append(c) avg = sum(consumptions) / len(consumptions) print("میانگین مصرف برق:", avg) print("کاربران پرمصرف:") for i, c in enumerate(consumptions): if c > avg: print(f"کاربر {i+1} --> مصرف: {c} --> جریمه شد!")
از نیاز به تکرار رسیدیم به حلقه for 🔄.
حلقه بدون داده به درد نمیخورد → range یاد گرفتیم 🧮.
برای ذخیرهی دادهها رفتیم سراغ لیست 📋 و مجموعهها 📦.
بعد یاد گرفتیم چطور شرط ⚖️ و حلقه 🔁 رو ترکیب کنیم.
بعد برای ساختارهای بزرگتر، وارد بحث کلاسها 🏢، کتابخانهها 📚 و پکیجها 🏘️ شدیم.
و در نهایت همه رو در یک تمرین واقعی (مصرف برق ⚡) ترکیب کردیم.