📚 آموزش لیست در پایتون – پروژههای کاربردی
دوره برنامهنویسی مقدماتی — مناسب سنین ۱۰ تا ۱۵ سال
🛒 پروژه ۳: مدیریت خریدهای روزانه
یک لیست از اقلام خریداری شده و قیمت هر کدام داریم. میخواهیم مجموع قیمتها، گرانترین و ارزانترین کالا را پیدا کنیم.
اقلام: [‘نان’, ‘شیر’, ‘پنیر’, ‘کره’, ‘تخممرغ’]
قیمتها: [۱۵۰۰۰, ۲۵۰۰۰, ۳۵۰۰۰, ۴۰۰۰۰, ۲۰۰۰۰]
مجموع قیمتها: ۱۳۵۰۰۰
گرانترین: کره با قیمت ۴۰۰۰۰
ارزانترین: نان با قیمت ۱۵۰۰۰
# پروژه ۳: مدیریت خریدهای روزانه items = ["نان", "شیر", "پنیر", "کره", "تخممرغ"] prices = [15000, 25000, 35000, 40000, 20000] # محاسبه مجموع قیمتها total_price = sum(prices) # پیدا کردن گرانترین و ارزانترین max_price = max(prices) min_price = min(prices) # پیدا کردن نام گرانترین و ارزانترین max_index = prices.index(max_price) min_index = prices.index(min_price) print("اقلام:", items) print("قیمتها:", prices) print("مجموع قیمتها:", total_price) print("گرانترین:", items[max_index], "با قیمت", max_price) print("ارزانترین:", items[min_index], "با قیمت", min_price)
📝 توضیح خط به خط کد و تو رفتگیها:
- خط ۱ (بدون تو رفتگی): کامنت
- خط ۲ (بدون تو رفتگی): تعریف لیست اسامی کالاها
- خط ۳ (بدون تو رفتگی): تعریف لیست قیمتها
- خط ۵ (بدون تو رفتگی): کامنت
- خط ۶ (بدون تو رفتگی): مجموع قیمتها با sum()
- خط ۸ (بدون تو رفتگی): کامنت
- خط ۹ (بدون تو رفتگی): پیدا کردن بیشترین قیمت با max()
- خط ۱۰ (بدون تو رفتگی): پیدا کردن کمترین قیمت با min()
- خط ۱۲ (بدون تو رفتگی): کامنت
- خط ۱۳ (بدون تو رفتگی): پیدا کردن اندیس گرانترین با index()
- خط ۱۴ (بدون تو رفتگی): پیدا کردن اندیس ارزانترین با index()
- خط ۱۶ تا ۲۰ (بدون تو رفتگی): نمایش نتایج
✅ تو رفتگیها: تمام خطوط کد در سطح اول (بدون تو رفتگی) نوشته شدهاند زیرا هیچ حلقه یا شرطی در این کد وجود ندارد.
🎂 پروژه ۴: لیست تولد دوستان
لیست سن دوستان خود را داریم. میخواهیم تعداد دوستانی که سنشان بالای ۱۲ سال است را پیدا کنیم و میانگین سنی دوستان را محاسبه کنیم.
سن دوستان: [۱۱, ۱۳, ۱۲, ۱۴, ۱۰, ۱۵, ۱۳, ۱۲, ۱۱, ۱۴]
تعداد دوستان بالای ۱۲ سال: ۵
میانگین سنی: ۱۲٫۵
بزرگترین سن: ۱۵
کوچکترین سن: ۱۰
# پروژه ۴: لیست تولد دوستان ages = [11, 13, 12, 14, 10, 15, 13, 12, 11, 14] # شمارش دوستان بالای ۱۲ سال count_above_12 = 0 for age in ages: if age > 12: count_above_12 = count_above_12 + 1 # محاسبه میانگین سنی average_age = sum(ages) / len(ages) # پیدا کردن بزرگترین و کوچکترین سن max_age = max(ages) min_age = min(ages) print("سن دوستان:", ages) print("تعداد دوستان بالای ۱۲ سال:", count_above_12) print("میانگین سنی:", average_age) print("بزرگترین سن:", max_age) print("کوچکترین سن:", min_age)
📝 توضیح خط به خط کد و تو رفتگیها:
- خط ۱ (بدون تو رفتگی): کامنت
- خط ۲ (بدون تو رفتگی): تعریف لیست سنها
- خط ۴ (بدون تو رفتگی): کامنت
- خط ۵ (بدون تو رفتگی): متغیر شمارنده (۰ Tab)
- خط ۶ (بدون تو رفتگی): شروع حلقه for (0 Tab)
- خط ۷ (یک Tab جلوتر): شرط if برای بررسی سن بالای ۱۲ (۱ Tab)
- خط ۸ (دو Tab جلوتر): افزایش شمارنده (۲ Tab)
- خط ۱۰ (بدون تو رفتگی): کامنت
- خط ۱۱ (بدون تو رفتگی): محاسبه میانگین
- خط ۱۳ (بدون تو رفتگی): کامنت
- خط ۱۴ (بدون تو رفتگی): پیدا کردن بزرگترین با max()
- خط ۱۵ (بدون تو رفتگی): پیدا کردن کوچکترین با min()
- خط ۱۷ تا ۲۱ (بدون تو رفتگی): نمایش نتایج
✅ تو رفتگیها: خطوط ۷ و ۸ به ترتیب ۱ و ۲ Tab تو رفتگی دارند زیرا داخل حلقه و شرط هستند.
📱 پروژه ۵: پیگیری مصرف اینترنت
میزان مصرف اینترنت (به گیگابایت) در ۷ روز هفته را داریم. میخواهیم روزهایی که مصرف بالای ۳ گیگ بوده را پیدا کنیم و مجموع مصرف را محاسبه کنیم.
مصرف روزانه (GB): [2.5, 4.2, 1.8, 5.1, 3.3, 2.9, 4.8]
مجموع مصرف: ۲۴٫۶ GB
میانگین مصرف روزانه: ۳٫۵۱ GB
روزهایی با مصرف بالای ۳ GB: [1, 3, 4, 6]
بیشترین مصرف: ۵٫۱ GB در روز ۴
# پروژه ۵: پیگیری مصرف اینترنت daily_usage = [2.5, 4.2, 1.8, 5.1, 3.3, 2.9, 4.8] # محاسبه مجموع و میانگین total_usage = sum(daily_usage) avg_usage = total_usage / len(daily_usage) # پیدا کردن روزهای با مصرف بالای ۳ GB high_usage_days = [] for i in range(len(daily_usage)): if daily_usage[i] > 3: high_usage_days.append(i) # پیدا کردن بیشترین مصرف max_usage = max(daily_usage) max_day = daily_usage.index(max_usage) print("مصرف روزانه (GB):", daily_usage) print("مجموع مصرف:", total_usage, "GB") print("میانگین مصرف روزانه:", round(avg_usage, 2), "GB") print("روزهایی با مصرف بالای ۳ GB:", high_usage_days) print("بیشترین مصرف:", max_usage, "GB در روز", max_day + 1)
📝 توضیح خط به خط کد و تو رفتگیها:
- خط ۱ (بدون تو رفتگی): کامنت
- خط ۲ (بدون تو رفتگی): تعریف لیست مصرف روزانه
- خط ۴ (بدون تو رفتگی): کامنت
- خط ۵ (بدون تو رفتگی): مجموع مصرف با sum()
- خط ۶ (بدون تو رفتگی): محاسبه میانگین
- خط ۸ (بدون تو رفتگی): کامنت
- خط ۹ (بدون تو رفتگی): لیست خالی برای روزهای پر مصرف
- خط ۱۰ (بدون تو رفتگی): حلقه for با range (0 Tab)
- خط ۱۱ (یک Tab جلوتر): شرط if برای مصرف بالای ۳ (۱ Tab)
- خط ۱۲ (دو Tab جلوتر): افزودن روز به لیست با append (2 Tab)
- خط ۱۴ (بدون تو رفتگی): کامنت
- خط ۱۵ (بدون تو رفتگی): پیدا کردن بیشترین مصرف با max()
- خط ۱۶ (بدون تو رفتگی): پیدا کردن اندیس بیشترین مصرف
- خط ۱۸ تا ۲۲ (بدون تو رفتگی): نمایش نتایج
✅ تو رفتگیها: خطوط ۱۱ و ۱۲ به ترتیب ۱ و ۲ Tab تو رفتگی دارند چون داخل حلقه و شرط هستند.
🏫 پروژه ۶: معدل کلاس
لیست نمرات یک کلاس را داریم. میخواهیم تعداد دانشآموزانی که نمره بالای ۱۷ دارند، تعداد دانشآموزانی که نمره زیر ۱۰ دارند و معدل کلاس را محاسبه کنیم.
نمرات کلاس: [۱۸, ۱۴, ۱۹, ۹, ۱۶, ۲۰, ۱۲, ۸, ۱۷, ۱۵, ۱۳, ۱۱]
تعداد دانشآموزان با نمره بالای ۱۷: ۳
تعداد دانشآموزان با نمره زیر ۱۰: ۲
معدل کلاس: ۱۴٫۳۳
بیشترین نمره: ۲۰
کمترین نمره: ۸
# پروژه ۶: معدل کلاس grades = [18, 14, 19, 9, 16, 20, 12, 8, 17, 15, 13, 11] # شمارش نمرات بالا و پایین high_count = 0 low_count = 0 for grade in grades: if grade > 17: high_count = high_count + 1 elif grade < 10: low_count = low_count + 1 # محاسبه معدل average = sum(grades) / len(grades) # پیدا کردن بیشترین و کمترین max_grade = max(grades) min_grade = min(grades) print("نمرات کلاس:", grades) print("تعداد دانشآموزان با نمره بالای ۱۷:", high_count) print("تعداد دانشآموزان با نمره زیر ۱۰:", low_count) print("معدل کلاس:", round(average, 2)) print("بیشترین نمره:", max_grade) print("کمترین نمره:", min_grade)
📝 توضیح خط به خط کد و تو رفتگیها:
- خط ۱ (بدون تو رفتگی): کامنت
- خط ۲ (بدون تو رفتگی): تعریف لیست نمرات
- خط ۴ (بدون تو رفتگی): کامنت
- خط ۵ (بدون تو رفتگی): متغیر شمارنده نمرات بالا (۰ Tab)
- خط ۶ (بدون تو رفتگی): متغیر شمارنده نمرات پایین (۰ Tab)
- خط ۷ (بدون تو رفتگی): شروع حلقه for (0 Tab)
- خط ۸ (یک Tab جلوتر): شرط if برای نمره بالای ۱۷ (۱ Tab)
- خط ۹ (دو Tab جلوتر): افزایش شمارنده بالا (۲ Tab)
- خط ۱۰ (یک Tab جلوتر): شرط elif برای نمره زیر ۱۰ (۱ Tab)
- خط ۱۱ (دو Tab جلوتر): افزایش شمارنده پایین (۲ Tab)
- خط ۱۳ (بدون تو رفتگی): کامنت
- خط ۱۴ (بدون تو رفتگی): محاسبه معدل
- خط ۱۶ (بدون تو رفتگی): کامنت
- خط ۱۷ (بدون تو رفتگی): پیدا کردن بیشترین با max()
- خط ۱۸ (بدون تو رفتگی): پیدا کردن کمترین با min()
- خط ۲۰ تا ۲۵ (بدون تو رفتگی): نمایش نتایج
✅ تو رفتگیها: خطوط ۸، ۹، ۱۰ و ۱۱ به ترتیب ۱ و ۲ Tab تو رفتگی دارند.
🍕 پروژه ۷: سفارش پیتزا
لیست سفارشهای پیتزا شامل تعداد پیتزا و قیمت هر کدام است. میخواهیم مجموع قیمت، میانگین قیمت و تعداد سفارشهای بالای ۱۰۰ هزار تومان را پیدا کنیم.
تعداد پیتزاها: [۲, ۳, ۱, ۴, ۲, ۳, ۱]
قیمت هر پیتزا: [۸۵۰۰۰, ۹۵۰۰۰, ۷۵۰۰۰, ۱۱۰۰۰۰, ۹۰۰۰۰, ۱۰۵۰۰۰, ۸۰۰۰۰]
مجموع قیمت: ۶۴۵۰۰۰
میانگین قیمت: ۹۲۱۴۲٫۸۶
تعداد سفارشهای بالای ۱۰۰ هزار: ۲
# پروژه ۷: سفارش پیتزا
pizza_counts = [2, 3, 1, 4, 2, 3, 1]
pizza_prices = [85000, 95000, 75000, 110000,
