با استفاده از توابع تابعی (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 مدیریت کنید و حالتِ خالی بودن لیست را پیش‌بینی نمایید.

توسط پژوهشگر در 220 روز قبل ساعت 02:22
دسته بندی ها: Python Python for beginner
reyhaneh در 220 روز قبل ساعت 09:58

برای جلوگیری از خطاهای تبدیل عددی، یک تابع کمکی تعریف کنید که مقدار غیرقابل تبدیل را به None برگرداند و سپس Noneها را با فیلتر حذف کنید. داده‌ها را با map و float به لیست تبدیل کنید و سپس با filter اعداد منفی را حذف کنید تا فقط اعداد غیرمنفی باقی بمانند. اگر لیست فیلترشده خالی بود، از شرطی ساده برای جلوگیری از تقسیم بر صفر استفاده کنید و یک پیام مناسب چاپ کنید. در نهایت، برای مجموع از reduce با operator.add استفاده کنید، برای مجموع مربعات از map برای مربع کردن هر عدد و سپس reduce، و میانگین را با تقسیم مجموع بر طول لیست فیلترشده محاسبه کنید و چاپ نمایید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری