حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش برنامه‌نویسی با پایتون؛ قسمت دوم: حل مسئله

پروژه پایتون؛ بررسی نمره‌ها و ساخت گزارش

۶. تابع‌های پایتون و پروژه گزارش نمره‌ها · 0٪

یک مسئلهٔ واقعی رو به دو تابع کوچک تقسیم کن. ورودی متن نمره‌هاست، جداشده با ویرگول انگلیسی، مثل "18, bad, 0, 22, 12.5". قطعهٔ خالی هم نامعتبر هست؛ متن خالی یک قطعهٔ نامعتبر داره. هر قطعه رو با float تبدیل کن؛ تنها بازهٔ ۰ تا ۲۰ معتبر هست. nan و inf هم نمره نیستن.

parse_grade(token) باید عدد معتبر یا None بدهد؛ فقط ValueError تبدیل رو مدیریت کن. سپس analyze_grades(text, pass_mark=10) از اون استفاده کند و دیکشنری گزارش برگرداند:

  • valid: تعداد نمره‌های معتبر؛
  • invalid: تعداد قطعه‌های نامعتبر؛
  • average: میانگین معتبرها تا دو رقم اعشار، یا None اگه معتبر نداریم؛
  • passed: تعداد نمره‌های بزرگ‌تر یا مساوی pass_mark؛
  • highest: بیشترین نمرهٔ معتبر، یا None اگه معتبر نداریم.

pass_mark در این تمرین عددی در بازهٔ ۰ تا ۲۰ هست. در نمونهٔ بالا سه نمرهٔ ۱۸، ۰ و ۱۲٫۵ معتبرند؛ دو قطعه نامعتبرند؛ میانگین ۱۰٫۱۷، قبولی ۲ و بیشترین نمره ۱۸ هست.

پیش از کد، برای «همه نامعتبر»، «فقط صفر» و «قبولی دقیقاً روی مرز» پاسخ بساز. None رو با is None بررسی کن؛ if not grade به‌اشتباه صفر رو کنار می‌ذاره. برای میانگین round(number, 2) به کار ببر. analyze_grades("9, 12", pass_mark=12) آرگومان نام‌دار رو هم تمرین می‌ده.

فعالیت شما

با تقسیم مسئله، بررسی ورودی و تابع‌های کوچک، گزارش نمره بساز.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید:

کد اولیهٔ فعالیت

def parse_grade(token):
    # عدد معتبر یا None
    pass

def analyze_grades(text, pass_mark=10):
    # قطعه‌ها را بررسی کن و دیکشنری گزارش بده
    pass