با استفاده از توابع تابعی (map, filter, functools.reduce) و ماژول operator، بنویسید یک اسکریپت پایتون که از یک فایل متنی شامل یک عدد اعشاری در هر خط، اعداد منفی را حذف کند و از اعداد باقیمانده میانگین، مجموع و مجموع مجذورات را محاسبه و چاپ نماید.
1.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 02:22 0.0
فایل را با with open بخوانید، خطوط را با map و float به اعداد تبدیل کنید، سپس با filter اعداد منفی را حذف کنید. برای محاسبات تجمعی از functools.reduce همراه operator.add (برای مجموع) و یا ترکیب map برای مجذورش استفاده کنید؛ برای میانگین مجموع را بر len لیستِ فیلترشده تقسیم نمایید. نکات: ابتدا نتیجه filter/map را به لیست تبدیل کنید تا بتوانید هم طول را بگیرید و هم چند بار روی دادهها عملیات انجام دهید، خطاهای تبدیل را با try/except مدیریت کنید و حالتِ خالی بودن لیست را پیشبینی نمایید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای جلوگیری از خطاهای تبدیل عددی، یک تابع کمکی تعریف کنید که مقدار غیرقابل تبدیل را به None برگرداند و سپس Noneها را با فیلتر حذف کنید. دادهها را با map و float به لیست تبدیل کنید و سپس با filter اعداد منفی را حذف کنید تا فقط اعداد غیرمنفی باقی بمانند. اگر لیست فیلترشده خالی بود، از شرطی ساده برای جلوگیری از تقسیم بر صفر استفاده کنید و یک پیام مناسب چاپ کنید. در نهایت، برای مجموع از reduce با operator.add استفاده کنید، برای مجموع مربعات از map برای مربع کردن هر عدد و سپس reduce، و میانگین را با تقسیم مجموع بر طول لیست فیلترشده محاسبه کنید و چاپ نمایید.
گزارش