یک برنامهٔ پایتون بنویسید که با استفاده از برنامه‌نویسی تابعی (map، functools.reduce و ماژول operator) یک فایل متنی شامل اعداد را بخواند و میانگین متحرک با پنجرهٔ n را محاسبه کند و نتیجهٔ هر پنجره را به‌صورت لیست چاپ کند.

3.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:25

0.0

فایل را با open بخوانید، با map و float هر سطر را به عدد تبدیل کنید و خطوط خالی را حذف کنید؛ سپس برای هر پنجرهٔ n تایی از لیست اعداد از ترکیب map/zip یا از list comprehension استفاده کنید تا زیرلیست‌ها بسازید. برای محاسبهٔ مجموع هر پنجره از functools.reduce به‌همراه operator.add استفاده کنید و سپس بر n تقسیم کنید تا میانگین به‌دست آید. نکات: ورودی n را اعتبارسنجی کنید (مثلاً n>0 و n

توسط پژوهشگر در 201 روز قبل ساعت 03:25
دسته بندی ها: Python Python for beginner
arman در 201 روز قبل ساعت 06:28

برای پیاده‌سازی، با استفاده از with open فایل را بخوانید، خطوط خالی را فیلتر کرده و با map و float به اعداد تبدیل کنید تا لیست عددی به دست آید. ورودی n را اعتبارسنجی کنید (n>0 و n <= طول لیست) و در صورت نامعتبر بودن پیام خطای مناسب بدهید یا خروجی خالی تولید کنید. برای ایجاد پنجره‌های n‌تایی می‌توانید از ترکیب map/zip یا لیست-کامپریشن استفاده کنید و هر پنجره را با functools.reduce و operator.add جمع کنید و نتیجه را بر n تقسیم کنید تا میانگین به دست آید. اگر هدف کارایی باشد، می‌توانید از sum به جای reduce استفاده کنید یا به پیاده‌سازی با نگه داشتن مجموع جاری فکر کنید، اما با فرض استفاده از map/reduce این الگو قابل قبول است.

گزارش

1 پاسخ

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

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