parse_grade(text) باید متن رو با float تبدیل کند. نمرهٔ معتبر در بازهٔ ۰ تا ۲۰، شامل خود صفر و بیست هست. برای متن غیرعددی یا عدد خارج بازه None برگردان. رشتههای ویژهٔ nan و inf هم نمرهٔ معتبر نیستن.
صفر نمرهٔ معتبر هست؛ نباید علامت خرابی باشه. None مقدار ویژهٔ «نتیجهای موجود نیست» هست و با value is None بررسی میشه.
کد اولیه int داره، همهٔ خطاها رو میگیره و صفر جعلی میده. فقط تبدیل رو داخل try انجام بده؛ فقط ValueError رو بگیر؛ سپس بازه رو بررسی کن. شرط 0 <= grade <= 20 هم حد پایین و هم بالا رو بررسی میکنه. برای NaN هم درست نمیشه. ورودی این تمرین همیشه رشته هست؛ خطاهای دیگر نباید بیدلیل پنهان بشن.
فعالیت شما
تبدیل اعشاری و خطای دقیق رو اصلاح کن؛ نامعتبر رو با None نشان بده.