با استفاده از پایتون، یک اسکریپت بنویس که با دریافت زمان شروع (بهصورت رشته ISO)، تعداد نمونهها و فاصله زمانی بین نمونهها (بر حسب ثانیه)، لیست زمانهای نمونهبرداری را با استفاده از datetime و timedelta تولید و بهصورت رشتههای ISO نمایش دهد.
28.0 بازدید آخرین ویرایش در 198 روز قبل ساعت 04:56 0.0
برای حل این مسأله از ماژول استاندارد datetime استفاده کنید: زمان شروع را با datetime.fromisoformat یا datetime.strptime پارس کنید، یک شی timedelta با پارامتر seconds بسازید و سپس با یک حلقه یا لیستکمپرهِنشن زمانهای بعدی را به شکل start + i * delta برای i در بازه تعداد نمونهها تولید کنید. هر زمان را با متد isoformat یا strftime به رشته تبدیل کنید. نکتهها: برای کار با زمانهای منطقهای timezone-aware از tzinfo یا datetime.timezone استفاده کنید و برای ورودیهای انعطافپذیر میتوانید از کتابخانه dateutil بهره ببرید؛ این روش برای زمانبندی خودکار نمونهبرداری در اسکریپتها و نیز برچسبگذاری سریهای زمانی در محاسبات عددی مفید است.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پارس کردن زمان شروع از datetime.fromisoformat استفاده کنید اما اگر ورودیهای متنوع یا فرمتهای ISO غیرمعمول دارید بهتر است dateutil.parser.parse یا dateutil.isoparse را بهکار ببرید و حواستان به timezone-aware بودن datetimeها باشد تا جمع با timedelta درست انجام شود. برای تولید لیست زمانها میتوانید از لیستکمپرهِنشن یا یک ژنراتور استفاده کنید؛ اگر تعداد نمونهها زیاد است ژنراتور حافظه را صرفهجویی میکند. برای خروجی از datetime.isoformat بهره ببرید و در صورت نیاز دقت اعشاری ثانیهها را با پارامتر timespec یا اضافه کردن "Z" برای UTC تنظیم کنید.
گزارش