راه
۶ کیو· متوسطمتوسطPYTHON۴ ثانیه · ۲۵۶ مگابایت

میوه‌خوری

سلیب که از برنامه‌نویسی خسته شده، تصمیم گرفته که به میوه‌خوری روی آورد و تا حد توانش میوه بخورد؛ ولی چون آدم حساسی است، به هر میوه‌ای لب نمی‌زند و فقط میوه‌های خوب را می‌خورد. میوه‌ی خوب، ویژگی‌های زیر را دارد:

  • شکل آن کروی ('sphere') است.
  • جرم آن بین ۳۰۰ و ۶۰۰ گرم (شامل خود ۳۰۰ و ۶۰۰) است. (300 ≤ mass ≤ 600)
  • حجم آن بین ۱۰۰ و ۵۰۰ سانتی‌متر مکعب (شامل خود ۱۰۰ و ۵۰۰) است. (100 ≤ volume ≤ 500)

تابع good_fruits

تابع good_fruits را طوری بنویسید که میوه‌های خوب را برای سلیب پیدا کند. این تابع، تاپلی از میوه‌ها را ورودی می‌گیرد. اطلاعات هر میوه در یک دیکشنری قرار گرفته و شامل نام ('name')، شکل ('shape')، جرم ('mass') بر حسب گرم و حجم ('volume') بر حسب سانتی‌متر مکعب است.

این تابع باید در خروجی یک دیکشنری را برگرداند که در آن نام میوه‌های خوبِ یافت‌شده و تعداد هر میوه‌ی خوب قرار دارد.


🎯 مثال

فرض کنید ۴ میوه به‌صورت زیر داریم:

نام میوه | شکل | جرم | حجم | وضعیت سیب | کروی | ۳۵۰ | ۱۲۰ | میوه‌ی خوب انبه | مربعی | ۱۵۰ | ۱۲۰ | میوه‌ی بد لیمو | کروی | ۳۰۰ | ۱۰۰ | میوه‌ی خوب سیب | کروی | ۵۰۰ | ۲۵۰ | میوه‌ی خوب

ورودی

text
>>> good_fruits((
    {'name':'apple', 'shape': 'sphere', 'mass': 350, 'volume': 120},
    {'name':'mango', 'shape': 'square', 'mass': 150, 'volume': 120},
    {'name':'lemon', 'shape': 'sphere', 'mass': 300, 'volume': 100},
    {'name':'apple', 'shape': 'sphere', 'mass': 500, 'volume': 250}
))

خروجی

text
{'apple': 2, 'lemon': 1}

📖 توضیح مثال

در لیست ورودی، سه میوه معیار خوب بودن را دارند:

  • اولین سیب ('shape': 'sphere'، 'mass': 350 و 'volume': 120)
  • لیمو ('shape': 'sphere'، 'mass': 300 و 'volume': 100)
  • دومین سیب ('shape': 'sphere'، 'mass': 500 و 'volume': 250)

انبه معیار شکل ('square') و جرم (150) را ندارد. بنابراین، خروجی شامل شمارش این میوه‌های خوب بر اساس نام است (۲ سیب و ۱ لیمو).


💡 راهنمایی

برای حل این تمرین، مراحل زیر را دنبال کنید:

  1. یک دیکشنری خالی برای ذخیره‌ی تعداد میوه‌های خوب ایجاد کنید.
  2. با استفاده از یک حلقه، هر میوه را از تاپل ورودی بررسی کنید.
  3. برای هر میوه، سه شرط را بررسی کنید: شکل کروی باشد ('sphere') جرم بین ۳۰۰ تا ۶۰۰ باشد حجم بین ۱۰۰ تا ۵۰۰ باشد
  4. اگر هر سه شرط برقرار بود، نام میوه را در دیکشنری خروجی بشمارید.
  5. در نهایت، دیکشنری خروجی را برگردانید.
python
def good_fruits(fruits):
    good_fruit_count = {}
    for fruit in fruits:
        if (fruit['shape'] == 'sphere' and
            300 <= fruit['mass'] <= 600 and
            100 <= fruit['volume'] <= 500):
            name = fruit['name']
            if name in good_fruit_count:
                good_fruit_count[name] += 1
            else:
                good_fruit_count[name] = 1
    return good_fruit_count

می‌توانید از متد get() برای ساده‌تر کردن شمارش استفاده کنید:

python
good_fruit_count[name] = good_fruit_count.get(name, 0) + 1
  • در این تمرین، نیازی به دریافت ورودی از کاربر یا چاپ خروجی در کنسول ندارید.
  • شما فقط باید تابع good_fruits را پیاده‌سازی کنید.
  • ورودی تابع از طریق آرگومان آن دریافت می‌شود و خروجی تابع باید از طریق دستور return برگردانده شود.
  • نیازی به فراخوانی تابع در کد ارسالی نیست. سیستم به‌طور خودکار تابع شما را با ورودی‌های مختلف تست خواهد کرد.

✅ این تمرین را در ویرایشگر خود پیاده‌سازی کنید. به یاد داشته باشید که تابع باید یک دیکشنری از نام میوه‌های خوب و تعداد آن‌ها برگرداند.

نمونه‌ها

ورودی نمونه ۱
good_fruits((
    {'name':'apple', 'shape': 'sphere', 'mass': 350, 'volume': 120},
    {'name':'mango', 'shape': 'square', 'mass': 150, 'volume': 120},
    {'name':'lemon', 'shape': 'sphere', 'mass': 300, 'volume': 100},
    {'name':'apple', 'shape': 'sphere', 'mass': 500, 'volume': 250}
))
خروجی نمونه ۱
{'apple': 2, 'lemon': 1}

برای نوشتن پاسخ و دریافت امتیاز، ابتدا وارد حساب شوید.

ورود